annotate src/macterm.c @ 91327:606f2d163a64

Merge from emacs--devo--0 Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-312
author Miles Bader <miles@gnu.org>
date Wed, 09 Jan 2008 01:21:15 +0000
parents 53108e6cea98 107ccd98fa12
children c70e45a7acfd
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,
79759
fc2bcd2a8aad Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 79302
diff changeset
3 2005, 2006, 2007, 2008 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
78260
922696f363b0 Switch license to GPLv3 or later.
Glenn Morris <rgm@gnu.org>
parents: 78059
diff changeset
9 the Free Software Foundation; either version 3, or (at your option)
44890
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
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
38 #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
39 #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
40 #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
41 #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
42 #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
43 #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
44 #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
45 #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
46 #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
47 #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
48 #include <Controls.h>
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
49 #include <Windows.h>
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
50 #include <Displays.h>
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
51 #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
52 #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
53 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
54
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
55 #if __profile__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
56 #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
57 #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
58 #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
59
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
60 #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
61 #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
62
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
63 #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
64 #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
65 #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
66 #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
67
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
68 #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
69 #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
70 #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
71 #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
72 #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
73 #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
74 #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
75 #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
76 #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
77 #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
78 #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
79 #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
80 #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
81 #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
82 #include "keymap.h"
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
83 #include "character.h"
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
84 #include "ccl.h"
66841
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
85
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
86
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
87
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
88 /* 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
89
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
90 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
91
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
92 /* 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
93 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
94 int mac_use_core_graphics;
59577
a4a748516aa7 * macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents: 59575
diff changeset
95
a4a748516aa7 * macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents: 59575
diff changeset
96
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
97 /* 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
98 start. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
99
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
100 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
101
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
102 /* 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
103 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
104
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
105 /* 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
106 (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
107 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
108
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
109 /* Non-zero means to draw the underline at the same place as the descent line. */
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
110
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
111 int x_underline_at_descent_line;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
112
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
113 /* 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
114 use. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
115
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
116 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
117
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
118 /* 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
119 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
120 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
121 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
122 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
123 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
124 display. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
125
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
126 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
127
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
128 /* 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
129 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
130
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
131 /* 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
132 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
133 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
134 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
135
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
136 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
137
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
138 /* 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
139
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
140 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
141
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
142 /* Mouse movement.
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
143
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
144 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
145 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
146 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
147 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
148
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
149 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
150
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
151 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
152 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
153 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
154 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
155 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
156 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
157 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
158 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
159 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
160 is off. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
161
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
162 /* 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
163
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
164 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
165 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
166
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
167 /* 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
168
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
169 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
170 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
171 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
172
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
173 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
174 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
175 event. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
176
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
177 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
178
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
179 /* 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
180 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
181 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
182 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
183 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
184 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
185
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
186 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
187
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
188 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
189
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
190 /* 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
191 events. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
192
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
193 #ifdef __STDC__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
194 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
195 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
196 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
197 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
198
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
199 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
200
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
201 extern Lisp_Object Qeql;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
202
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
203 /* 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
204
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
205 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
206
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
207 /* 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
208
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
209 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
210
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
211 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
212
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
213 #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
214 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
215 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
216
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
217 #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
218
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
219 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
220 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
221 int x_catch_errors P_ ((Display *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
222 void x_uncatch_errors P_ ((Display *, int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
223 void x_lower_frame P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
224 void x_scroll_bar_clear P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
225 int x_had_errors_p P_ ((Display *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
226 void x_wm_set_size_hint P_ ((struct frame *, long, int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
227 void x_raise_frame P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
228 void x_set_window_size P_ ((struct frame *, int, int, int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
229 void x_wm_set_window_state P_ ((struct frame *, int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
230 void x_wm_set_icon_pixmap P_ ((struct frame *, int));
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
231 static void mac_initialize P_ ((void));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
232 static void x_font_min_bounds P_ ((XFontStruct *, int *, int *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
233 static int x_compute_min_glyph_bounds P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
234 static void x_update_end P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
235 static void XTframe_up_to_date P_ ((struct frame *));
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
236 static void XTset_terminal_modes P_ ((struct terminal *));
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
237 static void XTreset_terminal_modes P_ ((struct terminal *));
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
238 static void x_clear_frame P_ ((struct frame *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
239 static void frame_highlight P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
240 static void frame_unhighlight P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
241 static void x_new_focus_frame P_ ((struct x_display_info *, struct frame *));
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
242 static void mac_focus_changed P_ ((int, struct mac_display_info *,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
243 struct frame *, struct input_event *));
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
244 static void x_detect_focus_change P_ ((struct mac_display_info *,
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
245 const EventRecord *,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
246 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
247 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
248 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
249 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
250 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
251 enum text_cursor_kinds));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
252
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
253 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
254 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
255 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
256 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
257 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
258 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
259 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
260 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
261 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
262
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
263 static int is_emacs_window P_ ((WindowRef));
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
264 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
265 static void XSetFont P_ ((Display *, GC, XFontStruct *));
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
266 static struct terminal *mac_create_terminal P_ ((struct mac_display_info *dpyinfo));
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
267
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
268
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
269 #define GC_FORE_COLOR(gc) (&(gc)->fore_color)
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
270 #define GC_BACK_COLOR(gc) (&(gc)->back_color)
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
271 #define GC_FONT(gc) ((gc)->xgcv.font)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
272 #define FRAME_NORMAL_GC(f) ((f)->output_data.mac->normal_gc)
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
273
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
274 #define CG_SET_FILL_COLOR(context, color) \
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
275 CGContextSetRGBFillColor (context, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
276 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
277 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
278 BLUE_FROM_ULONG (color) / 255.0f, 1.0f)
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
279 #if USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
280 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
281 #define CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
282 do { \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
283 if (CGColorGetTypeID != NULL) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
284 CGContextSetFillColorWithColor (context, cg_color); \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
285 else \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
286 CG_SET_FILL_COLOR (context, color); \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
287 } while (0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
288 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
289 #define CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
290 CGContextSetFillColorWithColor (context, cg_color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
291 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
292 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
293 #define CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
294 CG_SET_FILL_COLOR (context, color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
295 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
296 #define CG_SET_FILL_COLOR_WITH_GC_FOREGROUND(context, gc) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
297 CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR (context, (gc)->xgcv.foreground, \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
298 (gc)->cg_fore_color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
299 #define CG_SET_FILL_COLOR_WITH_GC_BACKGROUND(context, gc) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
300 CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR (context, (gc)->xgcv.background, \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
301 (gc)->cg_back_color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
302
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
303
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
304 #define CG_SET_STROKE_COLOR(context, color) \
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
305 CGContextSetRGBStrokeColor (context, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
306 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
307 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
308 BLUE_FROM_ULONG (color) / 255.0f, 1.0f)
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
309 #if USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
310 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
311 #define CG_SET_STROKE_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
312 do { \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
313 if (CGColorGetTypeID != NULL) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
314 CGContextSetStrokeColorWithColor (context, cg_color); \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
315 else \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
316 CG_SET_STROKE_COLOR (context, color); \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
317 } while (0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
318 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
319 #define CG_SET_STROKE_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
320 CGContextSetStrokeColorWithColor (context, cg_color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
321 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
322 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
323 #define CG_SET_STROKE_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
324 CG_SET_STROKE_COLOR (context, color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
325 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
326 #define CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND(context, gc) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
327 CG_SET_STROKE_COLOR_MAYBE_WITH_CGCOLOR (context, (gc)->xgcv.foreground, \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
328 (gc)->cg_fore_color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
329
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
330 #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
331 #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
332
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
333 /* 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
334
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
335 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
336 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
337
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
338 static CGColorSpaceRef mac_cg_color_space_rgb;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
339 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
340 static CGColorRef mac_cg_color_black;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
341 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
342
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
343 static void
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
344 init_cg_color ()
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
345 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
346 mac_cg_color_space_rgb = CGColorSpaceCreateDeviceRGB ();
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
347 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
348 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
349 /* Don't check the availability of CGColorCreate; this symbol is
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
350 defined even in Mac OS X 10.1. */
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
351 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
352 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
353 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
354 float rgba[] = {0.0f, 0.0f, 0.0f, 1.0f};
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
355
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
356 mac_cg_color_black = CGColorCreate (mac_cg_color_space_rgb, rgba);
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
357 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
358 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
359 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
360
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
361 static CGContextRef
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
362 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
363 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
364 GC gc;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
365 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
366 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
367
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
368 if (!context)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
369 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
370 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
371 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
372 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
373
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
374 CGContextSaveGState (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
375 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
376 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
377 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
378 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
379
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
380 return context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
381 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
382
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
383 static void
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
384 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
385 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
386 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
387 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
388 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
389
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
390 void
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
391 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
392 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
393 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
394 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
395 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
396 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
397 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
398 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
399 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
400 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
401 else
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
402 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
403 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
404
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
405 if (context)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
406 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
407 CGContextSynchronize (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
408 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
409 &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
410 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
411 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
412 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
413 #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
414
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
415 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
416
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
417 static void
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
418 mac_begin_clip (f, gc)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
419 struct frame *f;
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
420 GC gc;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
421 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
422 static RgnHandle new_region = NULL;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
423
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
424 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
425 saved_port_clip_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
426 if (new_region == NULL)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
427 new_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
428
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
429 #if USE_CG_DRAWING
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
430 mac_prepare_for_quickdraw (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
431 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
432 SetPortWindowPort (FRAME_MAC_WINDOW (f));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
433
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
434 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
435 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
436 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
437 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
438 SetClip (new_region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
439 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
440 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
441
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
442 static void
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
443 mac_end_clip (gc)
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
444 GC gc;
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
445 {
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
446 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
447 SetClip (saved_port_clip_region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
448 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
449
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
450
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
451 /* 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
452
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
453 /* 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
454
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
455 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
456 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
457 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
458 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
459 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
460 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
461 #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
462 CGContextRef context;
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
463 float gx1 = x1, gy1 = y1, gx2 = x2, gy2 = y2;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
464
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
465 if (y1 != y2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
466 gx1 += 0.5f, gx2 += 0.5f;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
467 if (x1 != x2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
468 gy1 += 0.5f, gy2 += 0.5f;
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
469
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
470 context = mac_begin_cg_clip (f, gc);
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
471 CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND (context, gc);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
472 CGContextBeginPath (context);
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
473 CGContextMoveToPoint (context, gx1, gy1);
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
474 CGContextAddLineToPoint (context, gx2, gy2);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
475 CGContextClosePath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
476 CGContextStrokePath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
477 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
478 #else
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
479 if (x1 == x2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
480 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
481 if (y1 > y2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
482 y1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
483 else if (y2 > y1)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
484 y2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
485 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
486 else if (y1 == y2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
487 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
488 if (x1 > x2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
489 x1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
490 else
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
491 x2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
492 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
493
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
494 mac_begin_clip (f, 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
495 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
496 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
497 LineTo (x2, y2);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
498 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
499 #endif
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
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
502 /* Mac version of XDrawLine (to Pixmap). */
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
503
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
504 void
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
505 XDrawLine (display, p, gc, x1, y1, x2, y2)
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
506 Display *display;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
507 Pixmap p;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
508 GC gc;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
509 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
510 {
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
511 CGrafPtr old_port;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
512 GDHandle old_gdh;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
513
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
514 if (x1 == x2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
515 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
516 if (y1 > y2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
517 y1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
518 else if (y2 > y1)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
519 y2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
520 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
521 else if (y1 == y2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
522 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
523 if (x1 > x2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
524 x1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
525 else
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
526 x2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
527 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
528
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
529 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
530 SetGWorld (p, NULL);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
531
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
532 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
533
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
534 LockPixels (GetGWorldPixMap (p));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
535 MoveTo (x1, y1);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
536 LineTo (x2, y2);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
537 UnlockPixels (GetGWorldPixMap (p));
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
538
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
539 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
540 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
541
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
542
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
543 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
544 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
545 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
546 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
547 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
548 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
549 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
550 #if USE_CG_DRAWING
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
551 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
552 CGContextRef context;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
553
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
554 context = mac_begin_cg_clip (f, gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
555 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
556 CGContextFillRect (context, CGRectMake (x, y, width, height));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
557 mac_end_cg_clip (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
558 }
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
559 #else
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
560 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
561 Rect r;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
562
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
563 mac_begin_clip (f, gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
564 RGBBackColor (GC_BACK_COLOR (gc));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
565 SetRect (&r, x, y, x + width, y + height);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
566 EraseRect (&r);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
567 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
568 mac_end_clip (gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
569 }
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
570 #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
571 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
572
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
573
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
574 /* 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
575
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
576 void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
577 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
578 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
579 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
580 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
581 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
582 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
583 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
584
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
585 /* 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
586
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
587 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
588 mac_clear_window (f)
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
589 struct frame *f;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
590 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
591 #if USE_CG_DRAWING
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
592 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
593 CGContextRef context;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
594 GC gc = FRAME_NORMAL_GC (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
595
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
596 context = mac_begin_cg_clip (f, NULL);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
597 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
598 CGContextFillRect (context, CGRectMake (0, 0, FRAME_PIXEL_WIDTH (f),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
599 FRAME_PIXEL_HEIGHT (f)));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
600 mac_end_cg_clip (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
601 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
602 #else /* !USE_CG_DRAWING */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
603 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
604
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
605 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
606
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
607 #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
608 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
609 Rect r;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
610
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
611 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
612 EraseRect (&r);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
613 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
614 #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
615 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
616 #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
617 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
618 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
619
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
620
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
621 /* 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
622
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
623 #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
624 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
625 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
626 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
627 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
628 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
629 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
630 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
631 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
632 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
633 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
634 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
635 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
636 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
637
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
638 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
639 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
640 {
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
641 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc);
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
642 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
643 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
644 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
645 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
646 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
647 if (CGImageIsMask (image))
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
648 CG_SET_FILL_COLOR_WITH_GC_FOREGROUND (context, gc);
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
649 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
650 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
651 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
652 + 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
653 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
654 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
655 image);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
656 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
657 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
658
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
659 #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
660
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
661 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
662 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
663 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
664 GC gc;
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
665 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
666 unsigned short *bits;
53899
e45e1fbbe83e (mac_draw_bitmap): Add overlay_p arg.
Kim F. Storm <storm@cua.dk>
parents: 53885
diff changeset
667 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
668 {
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
669 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
670 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
671
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
672 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
673 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
674 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
675
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
676 mac_begin_clip (f, 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
677 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
678 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
679 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
680 #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
681 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
682 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
683
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
684 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
685 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
686 CopyBits (&bitmap, GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
687 &(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
688 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
689 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
690 #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
691 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
692 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
693 #endif /* not TARGET_API_MAC_CARBON */
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
694 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
695 mac_end_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
696 }
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
697 #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
698
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
699
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
700 /* 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
701
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
702 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
703 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
704 BitMap *bitmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
705 char *bits;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
706 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
707 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
708 static const unsigned char swap_nibble[16]
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
709 = { 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
710 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
711 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
712 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
713 int i, j, w1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
714 char *p;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
715
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
716 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
717 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
718 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
719 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
720 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
721 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
722 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
723 for (j = 0; j < w1; j++)
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
724 {
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
725 /* 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
726 unsigned char c = *bits++;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
727 *p++ = (unsigned char)((swap_nibble[c & 0xf] << 4)
77907
c53c9b6a0e5b (mac_create_bitmap_from_bitmap_data)
Chong Yidong <cyd@stupidchicken.com>
parents: 77795
diff changeset
728 | (swap_nibble[(c>>4) & 0xf]));
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
729 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
730 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
731
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
732 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
733 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
734
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
735
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
736 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
737 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
738 BitMap *bitmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
739 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
740 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
741 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
742
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
743
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
744 Pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
745 XCreatePixmap (display, w, width, height, depth)
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
746 Display *display;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
747 WindowRef w;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
748 unsigned int width, height;
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
749 unsigned int depth;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
750 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
751 Pixmap pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
752 Rect r;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
753 QDErr err;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
754
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
755 SetPortWindowPort (w);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
756
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
757 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
758 #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
759 if (depth == 1)
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
760 #endif
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
761 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
762 #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
763 else
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
764 /* 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
765 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
766 #endif
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
767 if (err != noErr)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
768 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
769 return pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
770 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
771
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
772
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
773 Pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
774 XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth)
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
775 Display *display;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
776 WindowRef w;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
777 char *data;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
778 unsigned int width, height;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
779 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
780 unsigned int depth;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
781 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
782 Pixmap pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
783 BitMap bitmap;
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
784 CGrafPtr old_port;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
785 GDHandle old_gdh;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
786 static GC gc = NULL;
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
787
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
788 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
789 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
790
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
791 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
792 if (pixmap == NULL)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
793 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
794
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
795 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
796 SetGWorld (pixmap, NULL);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
797 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
798 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
799 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
800 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
801 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
802 LockPixels (GetGWorldPixMap (pixmap));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
803 #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
804 CopyBits (&bitmap, GetPortBitMapForCopyBits (pixmap),
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
805 &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
806 #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
807 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
808 &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
809 #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
810 UnlockPixels (GetGWorldPixMap (pixmap));
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
811 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
812 mac_free_bitmap (&bitmap);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
813
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
814 return pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
815 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
816
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
817
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
818 void
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
819 XFreePixmap (display, pixmap)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
820 Display *display;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
821 Pixmap pixmap;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
822 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
823 DisposeGWorld (pixmap);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
824 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
825
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
826
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
827 /* 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
828
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
829 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
830 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
831 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
832 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
833 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
834 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
835 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
836 #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
837 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
838
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
839 context = mac_begin_cg_clip (f, gc);
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
840 CG_SET_FILL_COLOR_WITH_GC_FOREGROUND (context, gc);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
841 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
842 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
843 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
844 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
845
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
846 mac_begin_clip (f, 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
847 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
848 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
849 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
850 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
851 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
852 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
853
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
854
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
855 /* 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
856
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
857 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
858 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
859 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
860 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
861 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
862 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
863 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
864 #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
865 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
866
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
867 context = mac_begin_cg_clip (f, gc);
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
868 CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND (context, gc);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
869 CGContextStrokeRect (context,
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
870 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
871 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
872 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
873 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
874
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
875 mac_begin_clip (f, 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
876 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
877 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
878 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
879 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
880 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
881 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
882
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
883
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
884 static void
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
885 mac_invert_rectangle (f, x, y, width, height)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
886 struct frame *f;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
887 int x, y;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
888 unsigned int width, height;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
889 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
890 Rect r;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
891
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
892 #if USE_CG_DRAWING
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
893 mac_prepare_for_quickdraw (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
894 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
895 SetPortWindowPort (FRAME_MAC_WINDOW (f));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
896
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
897 SetRect (&r, x, y, x + width, y + height);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
898
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
899 InvertRect (&r);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
900 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
901
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
902
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
903 #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
904 static OSStatus
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
905 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
906 ConstUniCharArrayPtr text;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
907 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
908 ATSUStyle style;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
909 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
910 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
911 OSStatus err;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
912 static ATSUTextLayout saved_text_layout = NULL;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
913
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
914 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
915 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
916 static const UniCharCount lengths[] = {kATSUToTextEnd};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
917 static const ATSUAttributeTag tags[] = {kATSULineLayoutOptionsTag};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
918 static const ByteCount sizes[] = {sizeof (ATSLineLayoutOptions)};
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
919 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
920 #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
921 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
922 | kATSLineUseQDRendering
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
923 #else
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
924 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
925 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
926 ;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
927 static const ATSUAttributeValuePtr values[] = {&line_layout};
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
928
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
929 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
930 kATSUFromTextBeginning,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
931 kATSUToTextEnd,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
932 text_length,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
933 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
934 &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
935 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
936 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
937 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
938 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
939 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
940 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
941 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
942 else
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
943 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
944 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
945 kATSUFromTextBeginning, kATSUToTextEnd);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
946 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
947 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
948 kATSUFromTextBeginning,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
949 kATSUToTextEnd,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
950 text_length);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
951 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
952
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
953 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
954 *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
955 return err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
956 }
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
957
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
958
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
959 static void
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
960 mac_draw_image_string_atsui (f, gc, x, y, buf, nchars, bg_width,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
961 overstrike_p, bytes_per_char)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
962 struct frame *f;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
963 GC gc;
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
964 int x, y;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
965 char *buf;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
966 int nchars, bg_width, overstrike_p, bytes_per_char;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
967 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
968 OSStatus err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
969 ATSUTextLayout text_layout;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
970
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
971 xassert (bytes_per_char == 2);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
972
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
973 #ifndef WORDS_BIG_ENDIAN
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
974 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
975 int i;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
976 UniChar *text = (UniChar *)buf;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
977
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
978 for (i = 0; i < nchars; i++)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
979 text[i] = EndianU16_BtoN (text[i]);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
980 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
981 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
982 err = atsu_get_text_layout_with_text_ptr ((ConstUniCharArrayPtr)buf,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
983 nchars,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
984 GC_FONT (gc)->mac_style,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
985 &text_layout);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
986 if (err != noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
987 return;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
988 #ifdef MAC_OSX
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
989 if (!mac_use_core_graphics)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
990 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
991 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
992 mac_begin_clip (f, gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
993 RGBForeColor (GC_FORE_COLOR (gc));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
994 if (bg_width)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
995 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
996 Rect r;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
997
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
998 SetRect (&r, x, y - FONT_BASE (GC_FONT (gc)),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
999 x + bg_width, y + FONT_DESCENT (GC_FONT (gc)));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1000 RGBBackColor (GC_BACK_COLOR (gc));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1001 EraseRect (&r);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1002 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1003 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1004 MoveTo (x, y);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1005 ATSUDrawText (text_layout,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1006 kATSUFromTextBeginning, kATSUToTextEnd,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1007 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1008 if (overstrike_p)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1009 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1010 MoveTo (x + 1, y);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1011 ATSUDrawText (text_layout,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1012 kATSUFromTextBeginning, kATSUToTextEnd,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1013 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1014 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1015 mac_end_clip (gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1016 #ifdef MAC_OSX
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1017 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1018 else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1019 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1020 static CGContextRef context;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1021 float port_height = FRAME_PIXEL_HEIGHT (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1022 static const ATSUAttributeTag tags[] = {kATSUCGContextTag};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1023 static const ByteCount sizes[] = {sizeof (CGContextRef)};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1024 static const ATSUAttributeValuePtr values[] = {&context};
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
1025
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1026 #if USE_CG_DRAWING
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1027 context = mac_begin_cg_clip (f, gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1028 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1029 CGrafPtr port;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1030
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1031 GetPort (&port);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1032 QDBeginCGContext (port, &context);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1033 if (gc->n_clip_rects || bg_width)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1034 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1035 CGContextTranslateCTM (context, 0, port_height);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1036 CGContextScaleCTM (context, 1, -1);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1037 if (gc->n_clip_rects)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1038 CGContextClipToRects (context, gc->clip_rects,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1039 gc->n_clip_rects);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1040 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1041 if (bg_width)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1042 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1043 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1044 CGContextFillRect (context,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1045 CGRectMake (x, y - FONT_BASE (GC_FONT (gc)),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1046 bg_width,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1047 FONT_HEIGHT (GC_FONT (gc))));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1048 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1049 CGContextScaleCTM (context, 1, -1);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1050 CGContextTranslateCTM (context, 0, -port_height);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1051 #if !USE_CG_DRAWING
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1052 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1053 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1054 CG_SET_FILL_COLOR_WITH_GC_FOREGROUND (context, gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1055 err = ATSUSetLayoutControls (text_layout,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1056 sizeof (tags) / sizeof (tags[0]),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1057 tags, sizes, values);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1058 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1059 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1060 ATSUDrawText (text_layout,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1061 kATSUFromTextBeginning, kATSUToTextEnd,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1062 Long2Fix (x), Long2Fix (port_height - y));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1063 if (overstrike_p)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1064 ATSUDrawText (text_layout,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1065 kATSUFromTextBeginning, kATSUToTextEnd,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1066 Long2Fix (x + 1), Long2Fix (port_height - y));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1067 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1068 #if USE_CG_DRAWING
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1069 mac_end_cg_clip (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1070 context = NULL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1071 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1072 CGContextSynchronize (context);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1073 QDEndCGContext (port, &context);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1074 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1075 #if 0
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1076 /* This doesn't work on Mac OS X 10.1. */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1077 ATSUClearLayoutControls (text_layout,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1078 sizeof (tags) / sizeof (tags[0]), tags);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1079 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1080 ATSUSetLayoutControls (text_layout,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1081 sizeof (tags) / sizeof (tags[0]),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1082 tags, sizes, values);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1083 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1084 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1085 #endif /* MAC_OSX */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1086 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1087 #endif /* USE_ATSUI */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1088
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1089
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1090 static void
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1091 mac_draw_image_string_qd (f, gc, x, y, buf, nchars, bg_width,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1092 overstrike_p, bytes_per_char)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1093 struct frame *f;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1094 GC gc;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1095 int x, y;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1096 char *buf;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1097 int nchars, bg_width, overstrike_p, bytes_per_char;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1098 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1099 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1100 UInt32 savedFlags;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1101 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1102
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1103 mac_begin_clip (f, gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1104 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1105 if (mac_use_core_graphics)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1106 savedFlags = SwapQDTextFlags (kQDUseCGTextRendering);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1107 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1108 RGBForeColor (GC_FORE_COLOR (gc));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1109 #ifdef MAC_OS8
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1110 if (bg_width)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1111 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1112 RGBBackColor (GC_BACK_COLOR (gc));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1113 TextMode (srcCopy);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1114 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1115 else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1116 TextMode (srcOr);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1117 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1118 /* We prefer not to use srcCopy text transfer mode on Mac OS X
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1119 because:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1120 - Screen is double-buffered. (In srcCopy mode, a text is drawn
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1121 into an offscreen graphics world first. So performance gain
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1122 cannot be expected.)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1123 - It lowers rendering quality.
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1124 - Some fonts leave garbage on cursor movement. */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1125 if (bg_width)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1126 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1127 Rect r;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1128
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1129 RGBBackColor (GC_BACK_COLOR (gc));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1130 SetRect (&r, x, y - FONT_BASE (GC_FONT (gc)),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1131 x + bg_width, y + FONT_DESCENT (GC_FONT (gc)));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1132 EraseRect (&r);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1133 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1134 TextMode (srcOr);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1135 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1136 TextFont (GC_FONT (gc)->mac_fontnum);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1137 TextSize (GC_FONT (gc)->mac_fontsize);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1138 TextFace (GC_FONT (gc)->mac_fontface);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1139 MoveTo (x, y);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1140 DrawText (buf, 0, nchars * bytes_per_char);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1141 if (overstrike_p)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1142 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1143 TextMode (srcOr);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1144 MoveTo (x + 1, y);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1145 DrawText (buf, 0, nchars * bytes_per_char);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1146 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1147 if (bg_width)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1148 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1149 mac_end_clip (gc);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1150
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1151 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1152 if (mac_use_core_graphics)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1153 SwapQDTextFlags(savedFlags);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1154 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1155 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1156
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1157
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1158 static INLINE void
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1159 mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1160 overstrike_p, bytes_per_char)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1161 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
1162 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1163 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
1164 char *buf;
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1165 int nchars, bg_width, overstrike_p, bytes_per_char;
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1166 {
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1167 #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
1168 if (GC_FONT (gc)->mac_style)
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1169 mac_draw_image_string_atsui (f, gc, x, y, buf, nchars, bg_width,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1170 overstrike_p, bytes_per_char);
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1171 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
1172 #endif /* USE_ATSUI */
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1173 mac_draw_image_string_qd (f, gc, x, y, buf, nchars, bg_width,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1174 overstrike_p, bytes_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
1175 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1176
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1177
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1178 /* Mac replacement for XDrawImageString. */
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1179
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1180 static void
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1181 mac_draw_image_string (f, gc, x, y, buf, nchars, bg_width, overstrike_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1182 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
1183 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1184 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
1185 char *buf;
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1186 int nchars, bg_width, overstrike_p;
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1187 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1188 mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1189 overstrike_p, 1);
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1190 }
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1191
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1192
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1193 /* Mac replacement for XDrawImageString16. */
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1194
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1195 static void
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1196 mac_draw_image_string_16 (f, gc, x, y, buf, nchars, bg_width, overstrike_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1197 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
1198 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1199 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
1200 XChar2b *buf;
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1201 int nchars, bg_width, overstrike_p;
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1202 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1203 mac_draw_string_common (f, gc, x, y, (char *) buf, nchars, bg_width,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1204 overstrike_p, 2);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1205 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1206
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1207
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1208 /* 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
1209 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
1210 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
1211 *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
1212
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1213 static OSStatus
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1214 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
1215 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
1216 overall_return, cg_glyph)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1217 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1218 ATSUStyle style;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1219 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1220 void *style;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1221 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1222 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1223 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
1224 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
1225 #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
1226 CGGlyph *cg_glyph;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1227 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1228 void *cg_glyph;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1229 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1230 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1231 OSStatus err = noErr;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1232 int width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1233 Rect char_bounds;
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 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1236 if (style)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1237 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1238 ATSUTextLayout text_layout;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1239 UniChar ch = c;
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 err = atsu_get_text_layout_with_text_ptr (&ch, 1, style, &text_layout);
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
1242 if (err == noErr
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
1243 && (font_ascent_return || font_descent_return || overall_return))
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1244 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1245 ATSTrapezoid glyph_bounds;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1246
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1247 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
1248 kATSUFromTextBeginning, kATSUToTextEnd,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1249 #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
1250 kATSUseFractionalOrigins,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1251 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1252 kATSUseDeviceOrigins,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1253 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1254 1, &glyph_bounds, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1255 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1256 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1257 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
1258 == 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
1259
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1260 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
1261 - glyph_bounds.upperLeft.x);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1262 if (font_ascent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1263 *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
1264 if (font_descent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1265 *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
1266 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1267 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1268 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
1269 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1270 err = ATSUMeasureTextImage (text_layout,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1271 kATSUFromTextBeginning, kATSUToTextEnd,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1272 0, 0, &char_bounds);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1273 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1274 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
1275 #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
1276 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
1277 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1278 OSStatus err1;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1279 ATSUGlyphInfoArray glyph_info_array;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1280 ByteCount count = sizeof (ATSUGlyphInfoArray);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1281
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1282 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
1283 kATSUToTextEnd, NULL, NULL, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1284 if (err1 == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1285 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
1286 kATSUToTextEnd, &count,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1287 &glyph_info_array);
73385
bd82ccfce877 (mac_query_char_extents): Don't return glyph ID if layout
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73298
diff changeset
1288 if (err1 == noErr
bd82ccfce877 (mac_query_char_extents): Don't return glyph ID if layout
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73298
diff changeset
1289 /* Make sure that we don't have to make layout
bd82ccfce877 (mac_query_char_extents): Don't return glyph ID if layout
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73298
diff changeset
1290 adjustments. */
bd82ccfce877 (mac_query_char_extents): Don't return glyph ID if layout
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73298
diff changeset
1291 && glyph_info_array.glyphs[0].deltaY == 0.0f
bd82ccfce877 (mac_query_char_extents): Don't return glyph ID if layout
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73298
diff changeset
1292 && glyph_info_array.glyphs[0].idealX == 0.0f
bd82ccfce877 (mac_query_char_extents): Don't return glyph ID if layout
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73298
diff changeset
1293 && glyph_info_array.glyphs[0].screenX == 0)
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1294 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1295 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
1296 *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
1297 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1298 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1299 *cg_glyph = 0;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1300 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1301 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1302 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1303 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1304 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1305 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1306 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1307 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
1308 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1309 FontInfo font_info;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1310
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1311 GetFontInfo (&font_info);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1312 if (font_ascent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1313 *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
1314 if (font_descent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1315 *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
1316 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1317 if (overall_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1318 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1319 char ch = c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1320
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1321 width = CharWidth (ch);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1322 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
1323 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
1324 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1325 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1326
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1327 return err;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1328 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1329
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1330
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1331 /* 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
1332
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1333 static int
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1334 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
1335 XFontStruct *font_struct;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1336 XChar2b *string;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1337 int nchars;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1338 XCharStruct *overall_return;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1339 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1340 int i;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1341 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
1342 XCharStruct *pcm;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1343
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1344 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
1345 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1346 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
1347 if (pcm == NULL)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1348 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
1349 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1350 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1351 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
1352 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
1353 width += pcm->width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1354 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1355 string++;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1356 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1357
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1358 overall_return->lbearing = lbearing;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1359 overall_return->rbearing = rbearing;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1360 overall_return->width = width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1361
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1362 /* 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
1363 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1364
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1365
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1366 #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
1367 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
1368
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
1369 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
1370 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
1371 {
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1372 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
1373 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
1374
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1375 threshold =
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1376 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
1377 kCFPreferencesCurrentApplication,
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1378 &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
1379 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
1380 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
1381 }
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
1382
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
1383 static int
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1384 mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width, overstrike_p)
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
1385 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
1386 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
1387 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
1388 XChar2b *buf;
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1389 int nchars, bg_width, overstrike_p;
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
1390 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1391 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
1392 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
1393 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
1394 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
1395 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
1396
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
1397 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
1398 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
1399
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1400 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
1401 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
1402 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
1403 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
1404 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
1405 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
1406 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
1407 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
1408 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1409 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
1410
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1411 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
1412 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
1413 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
1414 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
1415 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1416
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1417 #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
1418 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
1419 #else
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1420 QDBeginCGContext (GetWindowPort (FRAME_MAC_WINDOW (f)), &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
1421 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
1422 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1423 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
1424 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
1425 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
1426 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
1427 #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
1428 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
1429 {
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1430 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, 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
1431 CGContextFillRect
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1432 (context,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1433 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
1434 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
1435 }
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
1436 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
1437 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
1438 #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
1439 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1440 #endif
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1441 CG_SET_FILL_COLOR_WITH_GC_FOREGROUND (context, gc);
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
1442 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
1443 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
1444 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
1445 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
1446 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
73993
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1447 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1448 if (CGContextShowGlyphsWithAdvances != NULL)
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1449 #endif
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1450 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1451 CGContextSetTextPosition (context, gx, gy);
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1452 CGContextShowGlyphsWithAdvances (context, glyphs, advances, nchars);
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1453 if (overstrike_p)
73993
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1454 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1455 CGContextSetTextPosition (context, gx + 1.0f, gy);
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1456 CGContextShowGlyphsWithAdvances (context, glyphs, advances, nchars);
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1457 }
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1458 }
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1459 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1460 else /* CGContextShowGlyphsWithAdvances == NULL */
73993
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1461 #endif
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1462 #endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1463 #if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1464 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1465 for (i = 0; i < nchars; i++)
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1466 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1467 CGContextShowGlyphsAtPoint (context, gx, gy, glyphs + i, 1);
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1468 if (overstrike_p)
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1469 CGContextShowGlyphsAtPoint (context, gx + 1.0f, gy, glyphs + i, 1);
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1470 gx += advances[i].width;
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1471 }
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
1472 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1473 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1474 #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
1475 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
1476 #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
1477 CGContextSynchronize (context);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1478 QDEndCGContext (GetWindowPort (FRAME_MAC_WINDOW (f)), &context);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1479 #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
1480
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1481 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
1482 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1483 #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
1484
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1485
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
1486 #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
1487 /* 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
1488
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1489 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1490 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
1491 Pixmap src;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1492 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
1493 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1494 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
1495 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
1496 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
1497 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1498 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
1499
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1500 mac_begin_clip (f, gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1501
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1502 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
1503 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
1504
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1505 ForeColor (blackColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1506 BackColor (whiteColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1507
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1508 LockPixels (GetGWorldPixMap (src));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1509 #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
1510 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1511 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1512
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1513 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1514 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1515 CopyBits (GetPortBitMapForCopyBits (src),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1516 GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1517 &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
1518 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1519 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1520 #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
1521 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
1522 &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
1523 #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
1524 UnlockPixels (GetGWorldPixMap (src));
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
1525
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1526 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1527
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1528 mac_end_clip (gc);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1529 }
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1530
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1531
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1532 static void
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1533 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
1534 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
1535 Pixmap src, mask;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1536 struct frame *f;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1537 GC gc;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1538 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
1539 unsigned int width, height;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1540 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
1541 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1542 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
1543
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1544 mac_begin_clip (f, gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1545
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1546 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
1547 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
1548
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1549 ForeColor (blackColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1550 BackColor (whiteColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1551
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1552 LockPixels (GetGWorldPixMap (src));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1553 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
1554 #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
1555 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1556 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1557
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1558 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1559 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1560 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
1561 GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1562 &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
1563 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1564 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1565 #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
1566 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
1567 &(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
1568 #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
1569 UnlockPixels (GetGWorldPixMap (mask));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1570 UnlockPixels (GetGWorldPixMap (src));
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
1571
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1572 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1573
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1574 mac_end_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
1575 }
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
1576 #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
1577
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1578
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1579 /* 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
1580
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1581 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1582 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
1583 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
1584 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1585 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
1586 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
1587 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
1588 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1589 #if TARGET_API_MAC_CARBON
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1590 Rect src_r;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1591 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
1592
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1593 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
1594 #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
1595 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
1596 #endif
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1597 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
1598 &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
1599 kScrollWindowNoOptions, dummy);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1600 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
1601 #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
1602 Rect src_r, dest_r;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
1603 WindowRef 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
1604
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1605 mac_begin_clip (f, gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1606
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1607 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
1608 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
1609
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1610 /* 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
1611 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
1612 ForeColor (blackColor);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1613 BackColor (whiteColor);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1614 CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1615
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1616 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1617
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1618 mac_end_clip (gc);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1619 #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
1620 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1621
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1622
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1623 /* 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
1624
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1625 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
1626 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
1627 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
1628 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
1629 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
1630 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
1631 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1632 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
1633 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
1634 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
1635 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
1636 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
1637 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
1638 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1639
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1640
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1641 /* 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
1642
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1643 GC
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1644 XCreateGC (display, d, mask, xgcv)
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1645 Display *display;
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1646 void *d;
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1647 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
1648 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
1649 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1650 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
1651
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
1652 bzero (gc, sizeof (*gc));
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1653 #if USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1654 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1655 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1656 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1657 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1658 gc->cg_fore_color = gc->cg_back_color = mac_cg_color_black;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1659 CGColorRetain (gc->cg_fore_color);
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1660 CGColorRetain (gc->cg_back_color);
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1661 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1662 #endif
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
1663 XChangeGC (display, gc, mask, xgcv);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1664
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1665 return gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1666 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1667
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1668
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1669 /* 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
1670
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1671 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1672 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
1673 Display *display;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1674 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1675 {
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1676 if (gc->clip_region)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1677 DisposeRgn (gc->clip_region);
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1678 #if USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1679 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1680 if (CGColorGetTypeID != NULL)
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1681 #endif
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1682 {
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1683 CGColorRelease (gc->cg_fore_color);
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1684 CGColorRelease (gc->cg_back_color);
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1685 }
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1686 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1687 xfree (gc);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1688 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1689
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1690
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1691 /* 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
1692
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1693 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
1694 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
1695 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
1696 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
1697 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
1698 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
1699 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1700 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
1701 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
1702 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
1703 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
1704 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
1705 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
1706 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1707
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1708
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1709 /* 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
1710
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1711 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1712 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
1713 Display *display;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1714 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1715 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
1716 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1717 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
1718 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1719 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
1720 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
1721 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
1722 gc->fore_color.blue = BLUE16_FROM_ULONG (color);
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1723 #if USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1724 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1725 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1726 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1727 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1728 CGColorRelease (gc->cg_fore_color);
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1729 if (color == 0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1730 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1731 gc->cg_fore_color = mac_cg_color_black;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1732 CGColorRetain (gc->cg_fore_color);
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1733 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1734 else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1735 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1736 float rgba[4];
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1737
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1738 rgba[0] = gc->fore_color.red / 65535.0f;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1739 rgba[1] = gc->fore_color.green / 65535.0f;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1740 rgba[2] = gc->fore_color.blue / 65535.0f;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1741 rgba[3] = 1.0f;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1742 gc->cg_fore_color = CGColorCreate (mac_cg_color_space_rgb, rgba);
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1743 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1744 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1745 #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
1746 }
44890
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
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1750 /* 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
1751
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1752 void
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1753 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
1754 Display *display;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1755 GC gc;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1756 unsigned long color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1757 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1758 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
1759 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1760 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
1761 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
1762 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
1763 gc->back_color.blue = BLUE16_FROM_ULONG (color);
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1764 #if USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1765 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1766 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1767 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1768 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1769 CGColorRelease (gc->cg_back_color);
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1770 if (color == 0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1771 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1772 gc->cg_back_color = mac_cg_color_black;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1773 CGColorRetain (gc->cg_back_color);
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1774 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1775 else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1776 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1777 float rgba[4];
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1778
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1779 rgba[0] = gc->back_color.red / 65535.0f;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1780 rgba[1] = gc->back_color.green / 65535.0f;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1781 rgba[2] = gc->back_color.blue / 65535.0f;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1782 rgba[3] = 1.0f;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1783 gc->cg_back_color = CGColorCreate (mac_cg_color_space_rgb, rgba);
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1784 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1785 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1786 #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
1787 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1788 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1789
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1790
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1791 /* 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
1792
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1793 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
1794 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
1795 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
1796 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
1797 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
1798 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1799 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
1800 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1801
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1802
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1803 /* Mac replacement for XSetClipRectangles. */
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1804
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1805 static void
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1806 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
1807 Display *display;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1808 GC gc;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1809 Rect *rectangles;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1810 int n;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1811 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1812 int i;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1813
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1814 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
1815
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1816 gc->n_clip_rects = n;
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1817 if (n > 0)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1818 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1819 if (gc->clip_region == NULL)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1820 gc->clip_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1821 RectRgn (gc->clip_region, rectangles);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1822 if (n > 1)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1823 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1824 RgnHandle region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1825
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1826 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
1827 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1828 RectRgn (region, rectangles + i);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1829 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
1830 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1831 DisposeRgn (region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1832 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1833 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
1834 #if defined (MAC_OSX) && (USE_ATSUI || USE_CG_DRAWING)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1835 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
1836 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1837 Rect *rect = rectangles + i;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1838
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1839 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
1840 rect->right - rect->left,
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1841 rect->bottom - rect->top);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1842 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1843 #endif
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1844 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1845
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1846
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1847 /* Mac replacement for XSetClipMask. */
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1848
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1849 static INLINE void
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1850 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
1851 Display *display;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1852 GC gc;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1853 {
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1854 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
1855 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1856
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1857
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1858 /* 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
1859
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1860 void
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1861 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
1862 Display *display;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
1863 WindowRef w;
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1864 unsigned long color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1865 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1866 #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
1867 AuxWinHandle aw_handle;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1868 CTabHandle ctab_handle;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1869 ColorSpecPtr ct_table;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1870 short ct_size;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1871 #endif
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1872 RGBColor bg_color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1873
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1874 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
1875 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
1876 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
1877
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1878 #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
1879 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
1880 #else
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1881 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
1882 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1883 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
1884 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
1885 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
1886 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
1887 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
1888 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1889 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
1890 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1891 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
1892 CTabChanged (ctab_handle);
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1893 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
1894 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1895 ct_size--;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1896 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1897 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1898 #endif
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1899 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1900
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1901 /* 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
1902
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1903 static void
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1904 x_flush (f)
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1905 struct frame *f;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1906 {
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1907 #if TARGET_API_MAC_CARBON
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1908 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
1909 #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
1910 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
1911 #endif
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1912 if (f)
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1913 QDFlushPortBuffer (GetWindowPort (FRAME_MAC_WINDOW (f)), NULL);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1914 else
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1915 QDFlushPortBuffer (GetQDGlobalsThePort (), NULL);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1916 UNBLOCK_INPUT;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1917 #endif
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1918 }
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1919
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1920
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1921 /* 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
1922 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
1923 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
1924 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
1925 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
1926 performance. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1927
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1928 #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
1929
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1930 #if USE_CG_DRAWING
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1931 static void
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1932 mac_flush_display_optional (f)
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1933 struct frame *f;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1934 {
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1935 BLOCK_INPUT;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1936 mac_prepare_for_quickdraw (f);
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1937 UNBLOCK_INPUT;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1938 }
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1939 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1940
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 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
1943 ***********************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1944
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1945 /* 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
1946 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
1947 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
1948 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
1949
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1950 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1951 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
1952 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
1953 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1954 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1955 /* 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
1956 periodically checked with ReceiveNextEvent if
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1957 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
1958 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
1959 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
1960 update of a frame. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1961 BLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1962 DisableScreenUpdates ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1963 UNBLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1964 #endif
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1967
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1968 /* 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
1969 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
1970 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
1971
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1972 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1973 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
1974 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
1975 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1976 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
1977 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
1978
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1979 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
1980 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
1981
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1982 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1983
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1984 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
1985 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1986 /* 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
1987 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
1988
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1989 /* 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
1990 highlighting. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1991 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
1992 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
1993
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1994 #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
1995 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
1996 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
1997 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
1998 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
1999 here to prevent it from being scrolled. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2000
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2001 /* 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
2002 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
2003 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
2004 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
2005 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
2006 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
2007 && 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
2008 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2009 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2010
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
2011 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
2012 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
2013 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2014
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2015 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
2016 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
2017 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2018 #endif /* 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2019 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2020
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2021 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2022 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2023
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2024
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2025 /* 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
2026
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2027 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2028 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
2029 struct window *w;
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2030 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
2031 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2032 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
2033 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
2034
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2035 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
2036 if (face)
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2037 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
2038 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
2039
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2040 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
2041 }
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 /* 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
2044
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2045 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
2046 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
2047
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2048 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
2049 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
2050 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
2051
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2052 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
2053 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
2054 here. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2055
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2056 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2057 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
2058 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
2059 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
2060 {
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2061 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
2062
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2063 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
2064 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2065 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2066
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2067 if (cursor_on_p)
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2068 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
2069 output_cursor.vpos,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2070 output_cursor.x, output_cursor.y);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2071
57373
38e45bf0128a (x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents: 57357
diff changeset
2072 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
2073 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
2074
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2075 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2076 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2077
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2078 /* 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
2079 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
2080 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
2081 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2082 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
2083 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
2084 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
2085 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2086
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2087 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
2088 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2089
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2090
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2091 /* 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
2092 update_end. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2093
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2094 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2095 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
2096 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
2097 {
56890
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2098 /* Mouse highlight may be displayed again. */
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2099 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
2100
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2101 BLOCK_INPUT;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2102 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2103 EnableScreenUpdates ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2104 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2105 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
2106 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2107 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2108
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2109
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2110 /* 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
2111 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
2112 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
2113
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2114 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2115 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
2116 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
2117 {
55539
db942c4b4345 macterm.c (x_flush, XTframe_up_to_date): use FRAME_MAC_P
Steven Tamm <steventamm@mac.com>
parents: 55412
diff changeset
2118 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
2119 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2120 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
2121
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2122 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
2123 || 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
2124 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2125 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2126 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
2127 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
2128 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
2129 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
2130 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
2131 UNBLOCK_INPUT;
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 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2134 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2137 /* 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
2138 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
2139 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
2140 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
2141 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
2142 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
2143
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2144 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2145 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
2146 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
2147 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2148 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
2149 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
2150 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
2151
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2152 xassert (w);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2153
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2154 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
2155 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
2156
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2157 /* 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
2158 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
2159 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
2160 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
2161 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
2162 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
2163 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
2164 && 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
2165 && (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
2166 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
2167 width != 0)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2168 && (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
2169 height > 0))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2170 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2171 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
2172
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2173 /* 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
2174 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
2175 && 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
2176 y -= width;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2177
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2178 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2179 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
2180 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
2181 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2182 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2183 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2184
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2185
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2186 /* 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
2187 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
2188 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
2189 drawn. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2190
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2191 static void
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2192 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
2193 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
2194 struct glyph_row *row;
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2195 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
2196 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2197 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
2198 Display *display = FRAME_MAC_DISPLAY (f);
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2199 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
2200 int rowY;
81569
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2201 int overlay_p = p->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
2202
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2203 #ifdef MAC_OSX
81569
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2204 if (!overlay_p)
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2205 {
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2206 int bx = p->bx, by = p->by, nx = p->nx, ny = p->ny;
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2207
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2208 #if 0 /* MAC_TODO: stipple */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2209 /* In case the same realized face is used for fringes and
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2210 for something displayed in the text (e.g. face `region' on
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2211 mono-displays, the fill style may have been changed to
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2212 FillSolid in x_draw_glyph_string_background. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2213 if (face->stipple)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2214 XSetFillStyle (FRAME_X_DISPLAY (f), face->gc, FillOpaqueStippled);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2215 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2216 XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->background);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2217 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2218
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2219 /* If the fringe is adjacent to the left (right) scroll bar of a
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2220 leftmost (rightmost, respectively) window, then extend its
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2221 background to the gap between the fringe and the bar. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2222 if ((WINDOW_LEFTMOST_P (w)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2223 && WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2224 || (WINDOW_RIGHTMOST_P (w)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2225 && WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w)))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2226 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2227 int sb_width = WINDOW_CONFIG_SCROLL_BAR_WIDTH (w);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2228
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2229 if (sb_width > 0)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2230 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2231 int left = WINDOW_SCROLL_BAR_AREA_X (w);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2232 int width = (WINDOW_CONFIG_SCROLL_BAR_COLS (w)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2233 * FRAME_COLUMN_WIDTH (f));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2234
81569
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2235 if (bx < 0
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2236 && (left + width == p->x
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2237 || p->x + p->wd == left))
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2238 {
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2239 /* Bitmap fills the fringe and we need background
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2240 extension. */
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2241 int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w);
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2242
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2243 bx = p->x;
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2244 nx = p->wd;
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2245 by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height,
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2246 row->y));
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2247 ny = row->visible_height;
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2248 }
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2249
81570
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2250 if (bx >= 0)
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2251 {
81570
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2252 if (left + width == bx)
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2253 {
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2254 bx = left + sb_width;
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2255 nx += width - sb_width;
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2256 }
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2257 else if (bx + nx == left)
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2258 nx += width - sb_width;
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2259 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2260 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2261 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2262
81569
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2263 if (bx >= 0)
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2264 {
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2265 mac_erase_rectangle (f, face->gc, bx, by, nx, ny);
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2266 /* The fringe background has already been filled. */
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2267 overlay_p = 1;
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2268 }
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2269
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2270 #if 0 /* MAC_TODO: stipple */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2271 if (!face->stipple)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2272 XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->foreground);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2273 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2274 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2275 #endif /* 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
2276
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2277 /* 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
2278 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
2279 if (p->y < rowY)
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2280 {
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2281 /* 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
2282 visible last row. */
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2283 int oldY = row->y;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2284 int oldVH = row->visible_height;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2285 row->visible_height = p->h;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2286 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
2287 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
2288 row->y = oldY;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2289 row->visible_height = oldVH;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2290 }
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2291 else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2292 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
2293
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2294 #ifndef MAC_OSX
53885
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
2295 if (p->bx >= 0 && !p->overlay_p)
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2296 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2297 #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
2298 /* 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
2299 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
2300 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
2301 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
2302 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
2303 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
2304 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2305 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
2306 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2307
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2308 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
2309
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2310 #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
2311 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
2312 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
2313 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2314 }
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2315 #endif /* !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
2316
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2317 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
2318 #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
2319 && 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
2320 #endif
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2321 )
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2322 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2323 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
2324
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2325 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
2326 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
2327 (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
2328 ? (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
2329 : 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
2330 : 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
2331 #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
2332 mac_draw_cg_image (fringe_bmp[p->which], f, face->gc, 0, p->dh,
81569
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2333 p->wd, p->h, p->x, p->y, overlay_p);
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2334 #else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2335 mac_draw_bitmap (f, face->gc, p->x, p->y,
81569
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2336 p->wd, p->h, p->bits + p->dh, overlay_p);
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2337 #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
2338 XSetForeground (display, face->gc, gcv.foreground);
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2339 }
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2340
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2341 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
2342 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2343
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2344 #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
2345 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
2346 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
2347 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
2348 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
2349 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
2350 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2351 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
2352 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
2353
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2354 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
2355 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2356 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
2357 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
2358 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
2359 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
2360 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
2361 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2362
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2363 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
2364 bits[i] = ~bits[i];
78968
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2365
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2366 BLOCK_INPUT;
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2367
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2368 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
2369 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
2370 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
2371 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2372 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
2373 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
2374 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
2375 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
2376 }
78968
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2377
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2378 UNBLOCK_INPUT;
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2379 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2380
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2381 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
2382 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
2383 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
2384 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2385 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
2386 return;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2387
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2388 if (fringe_bmp[which])
78968
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2389 {
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2390 BLOCK_INPUT;
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2391 CGImageRelease (fringe_bmp[which]);
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2392 UNBLOCK_INPUT;
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2393 }
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2394 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
2395 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2396 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2397
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2398
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2399 /* 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
2400 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
2401 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
2402 rarely happens). */
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 static void
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
2405 XTset_terminal_modes (struct terminal *t)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2406 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2407 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2408
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2409 /* 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
2410 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
2411
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2412 static void
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
2413 XTreset_terminal_modes (struct terminal *t)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2414 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2415 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2416
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2417
44890
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 Display Iterator
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2421 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2422
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2423 /* 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
2424
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2425 static XCharStruct *x_per_char_metric P_ ((XFontStruct *, XChar2b *));
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2426 static int mac_encode_char P_ ((int, XChar2b *, struct font_info *,
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2427 struct charset *, int *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2428
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2429
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2430 static void
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2431 pcm_init (pcm, count)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2432 XCharStruct *pcm;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2433 int count;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2434 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2435 bzero (pcm, sizeof (XCharStruct) * count);
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2436 while (--count >= 0)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2437 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2438 pcm->descent = PCM_INVALID;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2439 pcm++;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2440 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2441 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2442
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2443 static enum pcm_status
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2444 pcm_get_status (pcm)
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
2445 const XCharStruct *pcm;
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2446 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2447 int height = pcm->ascent + pcm->descent;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2448
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2449 /* Negative height means some special status. */
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2450 return height >= 0 ? PCM_VALID : height;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2451 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2452
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2453 /* 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
2454 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
2455
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2456 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
2457 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
2458 XFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2459 XChar2b *char2b;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2460 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2461 /* 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
2462 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
2463
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2464 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
2465
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2466 #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
2467 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
2468 {
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2469 XCharStruct **row = font->bounds.rows + char2b->byte1;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2470
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2471 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
2472 {
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2473 *row = xmalloc (sizeof (XCharStruct) * 0x100);
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2474 pcm_init (*row, 0x100);
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2475 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2476 pcm = *row + char2b->byte2;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2477 if (pcm_get_status (pcm) != PCM_VALID)
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2478 {
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2479 BLOCK_INPUT;
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2480 mac_query_char_extents (font->mac_style,
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2481 (char2b->byte1 << 8) + char2b->byte2,
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2482 NULL, NULL, pcm, NULL);
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2483 UNBLOCK_INPUT;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2484 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2485 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2486 else
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2487 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2488 #endif
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2489 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
2490 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2491 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
2492 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2493 /* 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
2494 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
2495 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
2496 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
2497 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
2498 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
2499 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
2500 && 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
2501 && 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
2502 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
2503 + (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
2504 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2505 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2506 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2507 /* 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
2508 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
2509 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
2510 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
2511
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2512 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
2513 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
2514
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2515 where:
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 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
2518 / = integer division
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2519 \ = integer modulus */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2520 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
2521 && 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
2522 && 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
2523 && 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
2524 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2525 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
2526 + ((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
2527 * (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
2528 + (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
2529 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2530 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2531 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2532 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2533 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2534 /* 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
2535 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
2536 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
2537 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
2538 && 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
2539 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
2540 }
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2541 #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
2542 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2543 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2544
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2545 return ((pcm == NULL
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
2546 || (pcm->width == 0
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
2547 #if 0 /* Show hollow boxes for zero-width glyphs such as combining diacritics. */
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
2548 && (pcm->rbearing - pcm->lbearing) == 0
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
2549 #endif
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
2550 ))
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2551 ? NULL : pcm);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2552 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2553
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2554 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2555 */
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2556
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2557 static XCharStruct *
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2558 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
2559 XFontStruct *font;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2560 XChar2b *char2b;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2561 int font_type;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2562 {
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2563 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
2564 }
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2565
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2566 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2567 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
2568 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
2569
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2570 static int
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2571 mac_encode_char (c, char2b, font_info, charset, two_byte_p)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2572 int c;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2573 XChar2b *char2b;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2574 struct font_info *font_info;
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2575 struct charset *charset;
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2576 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
2577 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2578 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
2579
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2580 /* 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
2581 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
2582 fixed encoding. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2583 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
2584 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2585 /* 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
2586 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
2587
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2588 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
2589 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
2590 {
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2591 ccl->reg[0] = CHARSET_ID (charset);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2592 ccl->reg[1] = XCHAR2B_BYTE2 (char2b);
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2593 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
2594 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2595 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2596 {
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2597 ccl->reg[0] = CHARSET_ID (charset);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2598 ccl->reg[1] = XCHAR2B_BYTE1 (char2b);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2599 ccl->reg[2] = XCHAR2B_BYTE2 (char2b);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2600 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2601
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2602 ccl_driver (ccl, NULL, NULL, 0, 0, Qnil);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2603
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2604 /* 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
2605 program. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2606 if (font->max_byte1 == 0) /* 1-byte font */
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2607 STORE_XCHAR2B (char2b, 0, ccl->reg[1]);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2608 else
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2609 STORE_XCHAR2B (char2b, ccl->reg[1], ccl->reg[2]);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2610 }
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2611 else if (font_info->encoding_type)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2612 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2613 /* 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
2614 encoding numbers. */
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2615 unsigned char enc = font_info->encoding_type;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2616
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2617 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
2618 && 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
2619 char2b->byte1 |= 0x80;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2620
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2621 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
2622 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
2623
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2624 if (enc == 4)
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2625 {
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2626 int code = (char2b->byte1 << 8) | char2b->byte2;
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2627
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2628 JIS_TO_SJIS (code);
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2629 STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2630 }
44890
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2633 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
2634 *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
2635
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2636 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
2637 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2638
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2639
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2640
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2641 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2642 Glyph display
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2643 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2644
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2645
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2646
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2647 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
2648 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
2649 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
2650 int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2651 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
2652 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
2653 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
2654 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
2655 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
2656 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
2657 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
2658 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
2659 /*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
2660 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
2661 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
2662 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
2663 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
2664 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
2665 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
2666 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
2667 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
2668 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
2669 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
2670 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
2671 Rect *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2672 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
2673 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
2674
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2675 #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
2676 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
2677 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2678
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2679
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2680 /* 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
2681 face. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2682
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2683 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2684 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
2685 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
2686 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2687 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
2688 && 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
2689 && 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
2690 && !s->cmp)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2691 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
2692 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2693 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2694 /* 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
2695 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2696 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
2697
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2698 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
2699 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
2700
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2701 /* 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
2702 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
2703 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
2704 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
2705 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
2706 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
2707 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
2708
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2709 /* 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
2710 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
2711 && 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
2712 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2713 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
2714 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
2715 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2716
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2717 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
2718 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
2719 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
2720
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2721 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
2722 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
2723 mask, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2724 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2725 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
2726 = 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
2727
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2728 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
2729 }
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 /* 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
2734
44890
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_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
2737 struct glyph_string *s;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2738 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2739 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
2740 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
2741
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2742 /* 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
2743 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
2744 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
2745 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
2746 face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2747
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2748 if (s->first_glyph->type == CHAR_GLYPH)
89709
688136a6cab5 (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
Kenichi Handa <handa@m17n.org>
parents: 88123
diff changeset
2749 face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch, -1, Qnil);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2750 else
89709
688136a6cab5 (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
Kenichi Handa <handa@m17n.org>
parents: 88123
diff changeset
2751 face_id = FACE_FOR_CHAR (s->f, face, 0, -1, Qnil);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2752 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
2753 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
2754
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2755 /* 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
2756 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
2757 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
2758 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2759 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2760 /* 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
2761 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
2762 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2763 unsigned long mask;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2764
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2765 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
2766 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
2767 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
2768 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
2769 mask = GCForeground | GCBackground | GCFont;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2770
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2771 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
2772 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
2773 mask, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2774 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2775 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
2776 = XCreateGC (s->display, s->window, mask, &xgcv);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2777
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2778 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
2779 }
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 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
2782 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2783
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 /* 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
2786 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
2787 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
2788
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2789 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
2790 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
2791 struct glyph_string *s;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2792 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2793 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
2794 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2795
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2796
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2797 /* 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
2798 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
2799 pattern. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2800
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2801 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
2802 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
2803 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
2804 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2805 PREPARE_FACE_FOR_DISPLAY (s->f, s->face);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2806
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2807 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
2808 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2809 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
2810 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
2811 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2812 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
2813 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2814 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
2815 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
2816 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2817 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
2818 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2819 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
2820 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
2821 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2822 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
2823 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2824 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
2825 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
2826 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2827 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
2828 || 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
2829 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2830 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
2831 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
2832 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2833 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2834 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2835 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
2836 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
2837 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2838
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2839 /* 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
2840 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
2841 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2844 /* 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
2845 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
2846
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2847 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
2848 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
2849 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
2850 {
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2851 Rect rects[MAX_CLIP_RECTS];
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2852 int n;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2853
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2854 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
2855 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
2856 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2857
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2858
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2859 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2860 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
2861 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
2862
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2863 static void
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2864 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
2865 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
2866 {
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2867 if (!(s->cmp == NULL
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2868 && s->first_glyph->type == CHAR_GLYPH))
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2869 return;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2870
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2871 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
2872 #if USE_ATSUI
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2873 || s->font->mac_style
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2874 #endif
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2875 )
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2876 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2877 XCharStruct cs;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2878
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2879 mac_text_extents_16 (s->font, s->char2b, s->nchars, &cs);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2880 s->right_overhang = cs.rbearing > cs.width ? cs.rbearing - cs.width : 0;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2881 s->left_overhang = cs.lbearing < 0 ? -cs.lbearing : 0;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2882 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2883 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2884 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2885 Rect r;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2886 MacFontStruct *font = s->font;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2887
73133
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2888 #if USE_CG_DRAWING
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2889 mac_prepare_for_quickdraw (s->f);
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2890 #endif
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2891 SetPortWindowPort (FRAME_MAC_WINDOW (s->f));
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2892
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2893 TextFont (font->mac_fontnum);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2894 TextSize (font->mac_fontsize);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2895 TextFace (font->mac_fontface);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2896
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2897 QDTextBounds (s->nchars * 2, (char *)s->char2b, &r);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2898
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2899 s->right_overhang = r.right > s->width ? r.right - s->width : 0;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2900 s->left_overhang = r.left < 0 ? -r.left : 0;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2901 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2902 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2905 /* 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
2906
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2907 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
2908 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
2909 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
2910 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
2911 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2912 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
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 /* 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
2917 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
2918 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
2919 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
2920 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
2921
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2922 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2923 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
2924 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
2925 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
2926 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2927 /* 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
2928 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
2929 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
2930 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2931 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
2932
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2933 #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
2934 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
2935 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2936 /* 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
2937 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
2938 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
2939 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
2940 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
2941 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
2942 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
2943 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
2944 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2945 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2946 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2947 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
2948 || 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
2949 || 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
2950 || force_p)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2951 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2952 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
2953 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
2954 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
2955 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
2956 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2957 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2958 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2959
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2960
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2961 /* 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
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 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2964 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
2965 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
2966 {
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2967 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
2968
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2969 /* 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
2970 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
2971 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
2972 && s->first_glyph->left_box_line_p)
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
2973 x = s->x + eabs (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
2974 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2975 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
2976
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2977 /* 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
2978 loaded. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2979 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
2980 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2981 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
2982 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2983 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
2984 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
2985 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
2986 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
2987 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2988 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2989 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2990 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2991 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
2992 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
2993
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2994 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
2995 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
2996
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2997 /* 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
2998 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
2999 #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
3000 && 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
3001 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
3002 )
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3003 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
3004 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
3005
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3006 /* 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
3007 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
3008 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
3009 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
3010 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
3011 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
3012 || (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
3013 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
3014 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3015 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
3016
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3017 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
3018 #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
3019 || 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
3020 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3021 )
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
3022 #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
3023 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
3024 && mac_draw_image_string_cg (s->f, s->gc, x, s->ybase - boff,
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
3025 s->char2b, s->nchars, bg_width,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
3026 s->face->overstrike))
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3027 ;
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3028 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3029 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3030 mac_draw_image_string_16 (s->f, s->gc, x, s->ybase - boff,
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
3031 s->char2b, s->nchars, bg_width,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
3032 s->face->overstrike);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3033 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
3034 mac_draw_image_string (s->f, s->gc, x, s->ybase - boff,
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
3035 char1b, s->nchars, bg_width,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
3036 s->face->overstrike);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3037 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3040 /* 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
3041
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3042 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3043 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
3044 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
3045 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3046 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
3047
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3048 /* If 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
3049 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
3050 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
3051 && s->first_glyph->left_box_line_p)
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3052 x = s->x + eabs (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
3053 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3054 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
3055
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3056 /* 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
3057 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
3058 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
3059 this composition. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3060
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3061 /* 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
3062 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
3063 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
3064 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3065 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
3066 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
3067 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
3068 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3069 else
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 for (i = 0; i < s->nchars; i++, ++s->gidx)
78681
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3072 if (mac_per_char_metric (GC_FONT (s->gc), s->char2b + i, 0) == NULL)
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3073 /* This is a nonexistent or zero-width glyph such as a
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3074 combining diacritic. Draw a rectangle. */
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3075 mac_draw_rectangle (s->f, s->gc,
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3076 x + s->cmp->offsets[s->gidx * 2], s->y,
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3077 FONT_WIDTH (GC_FONT (s->gc)) - 1, s->height - 1);
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3078 else
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3079 mac_draw_image_string_16 (s->f, s->gc,
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3080 x + s->cmp->offsets[s->gidx * 2],
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3081 s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3082 s->char2b + i, 1, 0, s->face->overstrike);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3083 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3084 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3085
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3086
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3087 #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
3088
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3089 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
3090
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3091
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3092 /* 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
3093 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
3094
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3095 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
3096 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
3097 Widget widget;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3098 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3099 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
3100 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
3101 struct frame *f;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3102
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3103 dpyinfo = x_display_info_for_display (XtDisplay (widget));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3104
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3105 /* 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
3106 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
3107 (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
3108 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
3109 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
3110 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
3111
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3112 /* 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
3113 on that frame to get the right gamma correction value. */
90970
3371fc48749b Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 90951
diff changeset
3114 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
3371fc48749b Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 90951
diff changeset
3115 if (FRAMEP (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
3116 && (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
3117 (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
3118 && 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
3119 && 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
3120 return f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3121
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3122 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3123 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3124
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3125
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3126 /* 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
3127 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
3128 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
3129 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
3130
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3131 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3132 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
3133 Widget widget;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3134 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3135 XColor *color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3136 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3137 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
3138 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
3139 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3140
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3141
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3142 #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
3143
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3144 #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
3145
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3146 /* 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
3147 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
3148 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
3149 color allocated. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3150
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3151 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3152 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
3153 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
3154 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3155 XColor *color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3156 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3157 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
3158 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
3159 int rc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3160
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3161 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
3162 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
3163 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
3164 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3165 /* 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
3166 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
3167 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
3168 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
3169 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
3170 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
3171 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
3172 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
3173
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3174 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
3175 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
3176 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
3177
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3178 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
3179 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3180 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
3181 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
3182 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
3183 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
3184
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3185 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
3186 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3187 nearest = i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3188 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
3189 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3190 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3191
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3192 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
3193 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
3194 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
3195 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
3196 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3197
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3198 #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
3199 if (rc)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3200 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
3201 #endif /* DEBUG_X_COLORS */
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 return rc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3204 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3205
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3206
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3207 /* 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
3208 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
3209 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
3210
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3211 unsigned long
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3212 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
3213 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
3214 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
3215 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3216 XColor color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3217
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3218 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
3219 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3220 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
3221 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
3222 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3223 #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
3224 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
3225 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3226 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
3227 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3228
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3229
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3230 /* 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
3231 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
3232 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
3233
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3234 unsigned long
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3235 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
3236 Display *dpy;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3237 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3238 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
3239 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3240 XColor color;
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 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
3243 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3244 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
3245 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
3246 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3247 #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
3248 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
3249 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3250 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
3251 }
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 #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
3254
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3255
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3256 /* 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
3257 boosted.
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3258
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3259 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
3260 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
3261 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
3262 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
3263 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
3264
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3265 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
3266 (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
3267 #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
3268
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3269
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3270 /* 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
3271 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
3272 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
3273 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
3274 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
3275 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
3276
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3277 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3278 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
3279 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
3280 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
3281 double factor;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3282 int delta;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3283 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3284 unsigned long new;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3285 long bright;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3286
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3287 /* 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
3288 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
3289
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3290 /* 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
3291 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
3292 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
3293 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
3294 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
3295
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3296 /* Calculate brightness of COLOR. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3297 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
3298 + 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
3299
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3300 /* 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
3301 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
3302 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
3303 /* 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
3304 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
3305 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3306 /* 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
3307 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
3308 /* The additive adjustment. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3309 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
3310
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3311 if (factor < 1)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3312 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
3313 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
3314 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
3315 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3316 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
3317 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
3318 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
3319 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3320
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3321 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
3322 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
3323 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
3324 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
3325
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3326 /* 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
3327 /* 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
3328
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3329 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
3330 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3331
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3332 *color = new;
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 return 1;
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
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 /* 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
3339 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
3340 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
3341 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
3342 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
3343 be allocated, use DEFAULT_PIXEL, instead. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3344
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3345 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3346 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
3347 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
3348 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
3349 double factor;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3350 int delta;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3351 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
3352 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3353 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3354 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
3355 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
3356 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
3357 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
3358 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
3359
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3360 /* 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
3361
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3362 /* 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
3363 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
3364 pixel = background;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3365 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
3366 && 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
3367 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3368 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
3369 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
3370 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3371
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3372 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
3373 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3374 #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
3375 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
3376 mask |= GCStipple;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3377 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3378 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
3379 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3380 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3381 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
3382 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3383
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3384
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3385 /* 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
3386
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3387 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3388 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
3389 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
3390 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3391 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
3392 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
3393
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3394 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
3395 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
3396 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
3397 && s->img->pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3398 && !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
3399 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
3400 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3401 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3402 XGCValues xgcv;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3403
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3404 /* 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
3405 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
3406 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
3407 }
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 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
3410 || 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
3411 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3412 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
3413 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
3414 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
3415 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
3416 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
3417 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3418 }
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 /* 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
3422 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
3423 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
3424 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
3425 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
3426 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
3427 when drawing. */
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3430 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
3431 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
3432 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
3433 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
3434 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
3435 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
3436 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3437 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
3438 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3439 GC gc;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3440
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3441 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
3442 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
3443 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3444 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
3445 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
3446
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3447 /* Top. */
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3448 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
3449 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
3450 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
3451 left_x + i * left_p, top_y + i,
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
3452 right_x + 1 - 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
3453
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3454 /* Left. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3455 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
3456 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
3457 mac_draw_line (f, gc,
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
3458 left_x + i, top_y + i, left_x + i, bottom_y - 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
3459
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3460 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
3461 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
3462 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
3463 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3464 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
3465 mac_set_clip_rectangles (dpy, gc, clip_rect, 1);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3466
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3467 /* Bottom. */
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3468 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
3469 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
3470 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
3471 left_x + i * left_p, bottom_y - i,
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
3472 right_x + 1 - i * right_p, bottom_y - i);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3473
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3474 /* Right. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3475 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
3476 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
3477 mac_draw_line (f, gc,
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
3478 right_x - i, top_y + i + 1, right_x - i, bottom_y - i);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3479
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3480 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
3481 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3484 /* 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
3485 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
3486 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
3487 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
3488 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
3489 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
3490
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3491 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3492 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
3493 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
3494 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
3495 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
3496 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
3497 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3498 XGCValues xgcv;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3499
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
3500 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
3501 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
3502 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
3503
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3504 /* Top. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3505 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
3506 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
3507
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3508 /* Left. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3509 if (left_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3510 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
3511 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
3512
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3513 /* Bottom. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3514 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
3515 right_x - left_x + 1, width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3516
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3517 /* Right. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3518 if (right_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3519 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
3520 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
3521
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
3522 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
3523 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
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3527 /* 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
3528
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3529 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3530 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
3531 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
3532 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3533 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
3534 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
3535 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
3536 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
3537
59655
369714ad80ed (x_draw_glyph_string_box): Fix last_x for full width rows.
Kim F. Storm <storm@cua.dk>
parents: 59586
diff changeset
3538 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
3539 ? 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
3540 : window_box_right (s->w, s->area));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3541
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3542 /* 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
3543 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
3544 ? 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
3545 : 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
3546
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3547 width = eabs (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
3548 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
3549 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
3550 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
3551 ? last_x - 1
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3552 : 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
3553 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
3554 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
3555
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3556 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
3557 || (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
3558 && (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
3559 || 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
3560 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
3561 || (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
3562 && (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
3563 || s->next->hl != s->hl)));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3564
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3565 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
3566
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3567 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
3568 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
3569 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
3570 else
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 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
3573 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
3574 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
3575 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3578
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3579 /* 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
3580
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3581 static void
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_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
3583 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
3584 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3585 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
3586 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
3587
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3588 /* 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
3589 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
3590 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
3591 && 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
3592 && s->slice.x == 0)
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3593 x += eabs (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
3594
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3595 /* 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
3596 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
3597 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
3598 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
3599 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
3600 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
3601
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3602 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
3603 {
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
3604 x_set_glyph_string_clipping (s);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
3605
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3606 #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
3607 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
3608 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
3609 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
3610 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3611 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
3612 #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
3613 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
3614 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
3615 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
3616 #else
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3617 ;
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3618 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3619 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3620 {
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3621 #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
3622 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
3623 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
3624 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
3625 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3626
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3627 /* 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
3628 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
3629 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
3630 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
3631 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
3632 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
3633 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
3634 {
0b6da8b7d7ac (x_draw_image_foreground, x_draw_image_foreground_1):
Kim F. Storm <storm@cua.dk>
parents: 45111
diff changeset
3635 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
3636 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
3637 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
3638 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
3639 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
3640 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3641 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3642 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3643 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3644 /* 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
3645 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
3646 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
3647 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3650 /* 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
3651
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3652 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3653 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
3654 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
3655 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3656 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
3657 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
3658 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
3659 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
3660
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3661 /* 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
3662 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
3663 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
3664 && 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
3665 && s->slice.x == 0)
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3666 x += eabs (s->face->box_line_width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3667
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3668 /* 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
3669 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
3670 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
3671 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
3672 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
3673 y += s->img->vmargin;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3674
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3675 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
3676 || 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
3677 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3678 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
3679 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
3680 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3681 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3682 {
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3683 thick = eabs (s->img->relief);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3684 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
3685 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3686
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3687 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
3688 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
3689 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
3690 y1 = y + s->slice.height + thick - 1;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3691
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3692 x_setup_relief_colors (s);
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3693 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
3694 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
3695 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
3696 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
3697 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
3698 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
3699 &r);
44890
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3702
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3703 /* 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
3704 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
3705
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3706 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3707 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
3708 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
3709 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
3710 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3711 #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
3712 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
3713 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3714 /* 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
3715 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
3716 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
3717 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
3718 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3719 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3720 #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
3721 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
3722 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3723
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3724
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3725 /* 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
3726
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3727 s->y
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3728 s->x +-------------------------
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3729 | 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
3730 |
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3731 | +-------------------------
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3732 | | 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
3733 | |
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3734 | | +-------------------
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3735 | | | the image
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 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3738
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3739 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3740 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
3741 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
3742 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3743 int x, y;
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3744 int box_line_hwidth = eabs (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
3745 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
3746 int height;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3747
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3748 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
3749
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3750
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3751 /* 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
3752 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
3753 flickering. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3754 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
3755 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
3756 || 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
3757 || 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
3758 || 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
3759 || 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
3760 || 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
3761 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3762 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
3763 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
3764 && 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
3765 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
3766
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3767 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
3768 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
3769 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
3770
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3771 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
3772
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3773 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
3774 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3775
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3776 /* Draw the foreground. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3777 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
3778
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3779 /* 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
3780 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
3781 || 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
3782 || 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
3783 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
3784 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3785
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3786
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3787 /* 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
3788
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3789 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3790 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
3791 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
3792 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3793 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
3794
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3795 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
3796 && !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
3797 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3798 /* 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
3799 as wide as the stretch glyph. */
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3800 int width, background_width = s->background_width;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3801 int x = s->x, left_x = window_box_left_offset (s->w, TEXT_AREA);
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3802
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3803 if (x < left_x)
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3804 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3805 background_width -= left_x - x;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3806 x = left_x;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3807 }
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3808 width = min (FRAME_COLUMN_WIDTH (s->f), 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
3809
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3810 /* Draw cursor. */
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3811 x_draw_glyph_string_bg_rect (s, x, s->y, width, s->height);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3812
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3813 /* Clear rest using the GC of the original non-cursor face. */
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3814 if (width < 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
3815 {
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3816 int y = s->y;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3817 int w = background_width - width, h = s->height;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3818 Rect r;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3819 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
3820
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3821 x += width;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3822 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
3823 && 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
3824 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3825 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
3826 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
3827 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3828 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3829 gc = s->face->gc;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3830
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3831 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
3832 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
3833
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3834 #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
3835 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
3836 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3837 /* 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
3838 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
3839 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
3840 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
3841 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3842 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3843 #endif /* MAC_TODO */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3844 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
3845 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3846 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3847 else if (!s->background_filled_p)
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3848 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3849 int background_width = s->background_width;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3850 int x = s->x, left_x = window_box_left_offset (s->w, TEXT_AREA);
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3851
72470
3b82c004bf25 (x_draw_stretch_glyph_string): It is ok to draw a
Kim F. Storm <storm@cua.dk>
parents: 71965
diff changeset
3852 /* Don't draw into left margin, fringe or scrollbar area
3b82c004bf25 (x_draw_stretch_glyph_string): It is ok to draw a
Kim F. Storm <storm@cua.dk>
parents: 71965
diff changeset
3853 except for header line and mode line. */
3b82c004bf25 (x_draw_stretch_glyph_string): It is ok to draw a
Kim F. Storm <storm@cua.dk>
parents: 71965
diff changeset
3854 if (x < left_x && !s->row->mode_line_p)
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3855 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3856 background_width -= left_x - x;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3857 x = left_x;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3858 }
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3859 if (background_width > 0)
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3860 x_draw_glyph_string_bg_rect (s, x, s->y, background_width, s->height);
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3861 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3862
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3863 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
3864 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3865
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3866
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3867 /* 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
3868
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3869 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3870 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
3871 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
3872 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3873 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
3874
59718
d4cb255b034d * dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents: 59655
diff changeset
3875 /* 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
3876 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
3877 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
3878 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
3879 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
3880 && 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
3881 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3882 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
3883 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
3884 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
3885 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
3886 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3887
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3888 /* 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
3889 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
3890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3891 /* 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
3892 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
3893 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
3894 && 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
3895 && (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
3896 || 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
3897
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3898 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3899 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
3900 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
3901 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
3902 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
3903 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
3904 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3905 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3906 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
3907
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3908 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
3909 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3910 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
3911 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
3912 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3913
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3914 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
3915 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
3916 break;
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 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
3919 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
3920 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
3921 else
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3922 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
3923 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
3924 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3925
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3926 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
3927 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
3928 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
3929 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3930 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
3931 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
3932 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3933
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3934 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3935 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3936 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3937
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
3938 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
3939 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3940 /* Draw underline. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3941 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
3942 {
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3943 unsigned long tem, h;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3944 int y;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3945
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3946 #if 0
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3947 /* Get the underline thickness. Default is 1 pixel. */
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3948 if (!XGetFontProperty (s->font, XA_UNDERLINE_THICKNESS, &h))
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3949 #endif
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3950 h = 1;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3951
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3952 y = s->y + s->height - h;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3953 if (!x_underline_at_descent_line)
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3954 {
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3955 /* Get the underline position. This is the recommended
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3956 vertical offset in pixels from the baseline to the top of
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3957 the underline. This is a signed value according to the
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3958 specs, and its default is
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3959
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3960 ROUND ((maximum descent) / 2), with
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3961 ROUND(x) = floor (x + 0.5) */
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3962
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3963 #if 0
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3964 if (x_use_underline_position_properties
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3965 && XGetFontProperty (s->font, XA_UNDERLINE_POSITION, &tem))
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3966 y = s->ybase + (long) tem;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3967 else
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3968 #endif
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3969 if (s->face->font)
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3970 y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3971 }
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 if (s->face->underline_defaulted_p)
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3974 mac_fill_rectangle (s->f, s->gc, s->x, y,
72505
759e19ea81e5 (x_underline_at_descent_line): New variable.
Kim F. Storm <storm@cua.dk>
parents: 72470
diff changeset
3975 s->background_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
3976 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3977 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3978 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3979 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
3980 XSetForeground (s->display, s->gc, s->face->underline_color);
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3981 mac_fill_rectangle (s->f, s->gc, s->x, y,
72505
759e19ea81e5 (x_underline_at_descent_line): New variable.
Kim F. Storm <storm@cua.dk>
parents: 72470
diff changeset
3982 s->background_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
3983 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
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 /* Draw overline. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3988 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
3989 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3990 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
3991
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3992 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
3993 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
72505
759e19ea81e5 (x_underline_at_descent_line): New variable.
Kim F. Storm <storm@cua.dk>
parents: 72470
diff changeset
3994 s->background_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
3995 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3996 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3997 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3998 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
3999 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
4000 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
72505
759e19ea81e5 (x_underline_at_descent_line): New variable.
Kim F. Storm <storm@cua.dk>
parents: 72470
diff changeset
4001 s->background_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
4002 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
4003 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4004 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4005
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4006 /* 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
4007 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
4008 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4009 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
4010 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
4011
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4012 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
4013 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
4014 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
4015 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4016 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4017 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4018 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
4019 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
4020 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
4021 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
4022 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
4023 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4024 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4025
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
4026 /* 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
4027 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
4028 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
4029 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4030
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4031 /* Reset clipping. */
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
4032 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
4033 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4034
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4035 /* 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
4036
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4037 void
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4038 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
4039 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4040 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
4041 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4042 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
4043 x, y, width, height,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4044 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
4045 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4046
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4047 /* 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
4048 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
4049
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4050 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4051 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
4052 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
4053 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4054 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4055 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4056
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 /* 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
4059 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
4060
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4061 static void
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
4062 x_clear_frame (struct frame *f)
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
4063 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4064 /* 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
4065 longer visible. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4066 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
4067 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
4068 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
4069
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4070 /* 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
4071 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
4072 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4073 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
4074
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4075 /* 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
4076 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
4077 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
4078
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4079 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
4080 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4081 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4082
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4083
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4084
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4085 /* 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
4086
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4087 /* 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
4088 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
4089
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4090 #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
4091
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
4092
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4093 /* 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
4094 *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
4095
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4096 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4097 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
4098 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
4099 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4100 /* 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
4101 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
4102 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
4103 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4104 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
4105 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
4106 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
4107 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4108
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4109 if (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
4110 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4111 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
4112 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
4113 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
4114 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4115
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4116 /* 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
4117 positive. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4118 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
4119 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
4120
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4121 /* 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
4122 negative. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4123 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
4124 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4125
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4126 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4127 XTflash (f)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4128 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
4129 {
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4130 /* 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
4131 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
4132 /* 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
4133 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
4134 /* 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
4135 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
4136 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
4137
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4138 int width;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4139
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4140 /* 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
4141 edge it is next to. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4142 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
4143 {
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4144 case vertical_scroll_bar_left:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4145 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
4146 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4147
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4148 case vertical_scroll_bar_right:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4149 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
4150 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4151
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4152 default:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4153 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4154 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4155
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4156 width = flash_right - flash_left;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4157
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4158 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4159
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4160 /* 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
4161 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
4162 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4163 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
4164 (FRAME_INTERNAL_BORDER_WIDTH (f)
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4165 + 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
4166 width, flash_height);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4167 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
4168 (height - flash_height
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4169 - FRAME_INTERNAL_BORDER_WIDTH (f)),
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4170 width, flash_height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4171 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4172 else
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4173 /* 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
4174 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
4175 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
4176
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4177 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
4178
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4179 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4180 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
4181
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4182 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
4183
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4184 /* 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
4185 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
4186 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
4187 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
4188
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4189 /* 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
4190 available. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4191 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
4192 {
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4193 struct timeval current;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4194 struct timeval timeout;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4195
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4196 EMACS_GET_TIME (current);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4197
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4198 /* 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
4199 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
4200 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4201
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4202 /* How long `select' should wait. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4203 timeout.tv_sec = 0;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4204 timeout.tv_usec = 10000;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4205
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4206 /* 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
4207 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
4208 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4209 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4210
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4211 /* 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
4212 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
4213 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4214 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
4215 (FRAME_INTERNAL_BORDER_WIDTH (f)
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4216 + 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
4217 width, flash_height);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4218 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
4219 (height - flash_height
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4220 - FRAME_INTERNAL_BORDER_WIDTH (f)),
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4221 width, flash_height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4222 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4223 else
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4224 /* 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
4225 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
4226 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
4227
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4228 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
4229
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4230 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4231 }
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 #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
4234
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4235
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4236 /* 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
4237
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4238 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4239 XTring_bell ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4240 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4241 struct frame *f = SELECTED_FRAME ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4242
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4243 #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
4244 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
4245 XTflash (f);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4246 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4247 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4248 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4249 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4250 SysBeep (1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4251 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
4252 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4253 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4256
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4257 /* 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
4258 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
4259 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
4260 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
4261
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
4262 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
4263 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
4264 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
4265 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4266 /* 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
4267 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4270
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 Line Dance
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4273 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4274
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4275 /* 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
4276 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
4277
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4278 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4279 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
4280 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
4281 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4282 abort ();
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
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 /* 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
4287
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4288 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4289 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
4290 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
4291 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
4292 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4293 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
4294 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
4295
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4296 /* 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
4297 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
4298 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
4299 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
4300
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4301 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
4302 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
4303 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
4304
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4305 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
4306 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4307 /* 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
4308 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
4309 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
4310 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
4311 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4312 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
4313 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4314 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4315 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4316 /* 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
4317 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
4318 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
4319 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
4320 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4321 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
4322 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4323
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4324 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4325
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4326 /* 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
4327 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
4328 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
4329
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4330 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
4331 x, from_y,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4332 width, height,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4333 x, to_y);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4334
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4335 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4336 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4337
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4340 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4341 Exposure Events
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4342 ***********************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4343
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4344
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4345 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4346 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
4347 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
4348 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4349 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
4350 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4351
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4352 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4353 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
4354 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
4355 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4356 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
4357 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4358
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4359 /* 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
4360 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
4361 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
4362 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
4363 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
4364
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4365 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4366 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
4367 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
4368 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
4369 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4370 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
4371
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4372 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
4373 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4374 /* 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
4375 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
4376 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
4377
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4378 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
4379 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
4380
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4381 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4382 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
4383 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
4384 selected_frame);
51048
7ac9c3bea5ea (Fselect_window): Add optional arg `norecord'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 50701
diff changeset
4385 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
4386 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
4387 #endif /* ! 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4388
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4389 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
4390 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
4391 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4392 pending_autoraise_frame = 0;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
4393
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
4394 #if USE_MAC_FONT_PANEL
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
4395 if (frame)
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
4396 mac_set_font_info_for_selection (frame, DEFAULT_FACE_ID, 0);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
4397 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4398 }
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 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
4401 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4402
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4403 /* 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
4404 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
4405 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
4406
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4407 static void
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4408 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
4409 int type;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4410 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
4411 struct frame *frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4412 struct input_event *bufp;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4413 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4414 if (type == activeFlag)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4415 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4416 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
4417 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4418 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
4419 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
4420
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4421 /* 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
4422 for a switch-frame event we don't need. */
90970
3371fc48749b Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 90951
diff changeset
4423 if (NILP (Vterminal_frame)
3371fc48749b Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 90951
diff changeset
4424 && CONSP (Vframe_list)
3371fc48749b Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 90951
diff changeset
4425 && !NILP (XCDR (Vframe_list)))
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4426 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4427 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
4428 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
4429 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4430 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4431 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4432 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4433 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4434 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
4435 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4436 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
4437 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
4438 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4439 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4440 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4441
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4442 /* 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
4443 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
4444
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4445 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
4446
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4447 static void
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4448 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
4449 struct mac_display_info *dpyinfo;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
4450 const EventRecord *event;
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4451 struct input_event *bufp;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4452 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4453 struct frame *frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4454
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4455 frame = mac_window_to_frame ((WindowRef) event->message);
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4456 if (! frame)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4457 return;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4458
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4459 /* 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
4460 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
4461 dpyinfo, frame, bufp);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4462 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4463
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4464
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4465 /* 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
4466
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4467 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4468 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
4469 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
4470 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4471 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
4472 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4473
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4474 /* 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
4475 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
4476 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
4477
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4478 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
4479 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
4480 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
4481
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4482 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4483 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
4484 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
4485 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4486 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
4487 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4488
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4489 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4490 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
4491 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
4492 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4493 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
4494
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4495 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
4496 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4497 dpyinfo->x_highlight_frame
90970
3371fc48749b Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 90951
diff changeset
4498 = ((FRAMEP (FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame)))
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4499 ? 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
4500 : 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
4501 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
4502 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4503 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
4504 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
4505 }
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 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4508 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
4509
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4510 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
4511 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4512 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
4513 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
4514 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
4515 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
4516 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4517 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4518
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4519
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4520
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4521 /* 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
4522
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4523 char *
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4524 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
4525 int keysym;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4526 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4527 char *value;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4528
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4529 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4530 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4531 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
4532 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4533 value = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4534 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4535 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4536
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4537 return value;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4538 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4539
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4540
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4541
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4542 /* 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
4543 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
4544
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4545 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
4546 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
4547 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
4548 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
4549
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4550 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
4551 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
4552
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
4553 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
4554 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
4555 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
4556 Point *pos;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4557 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4558 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
4559 #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
4560 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4561 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4562
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4563 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
4564 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
4565 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
4566
76535
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4567 if (frame == dpyinfo->mouse_face_mouse_frame
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4568 #if TARGET_API_MAC_CARBON
76535
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4569 && !PtInRect (*pos, GetWindowPortBounds (FRAME_MAC_WINDOW (frame), &r))
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4570 #else
76535
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4571 && !PtInRect (*pos, &FRAME_MAC_WINDOW (frame)->portRect)
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4572 #endif
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4573 )
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4574 {
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4575 /* This case corresponds to LeaveNotify in X11. If we move
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4576 outside the frame, then we're certainly no longer on any text
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4577 in the frame. */
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4578 clear_mouse_face (dpyinfo);
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4579 dpyinfo->mouse_face_mouse_frame = 0;
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4580 if (!dpyinfo->grabbed)
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
4581 FRAME_RIF (frame)->define_frame_cursor (frame,
76535
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4582 frame->output_data.mac->nontext_cursor);
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4583 }
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4584
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4585 /* 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
4586 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
4587 || !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
4588 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4589 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
4590 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
4591 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
4592 /* 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
4593 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
4594 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
4595 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
4596 }
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
4597
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
4598 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
4599 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4600
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4601
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4602 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4603 Mouse Face
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4604 ************************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4605
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4606 /* 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
4607
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4608 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4609 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
4610 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4611 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
4612 && 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
4613 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
4614 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
4615 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
4616 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4617
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4618
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4619 static struct frame *
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4620 mac_focus_frame (dpyinfo)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4621 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
4622 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4623 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
4624 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
4625 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4626 /* 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
4627 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
4628 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
4629 return SELECTED_FRAME ();
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4630 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4631
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4632
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4633 /* 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
4634 *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
4635
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4636 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
4637 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
4638 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
4639 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
4640
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4641 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
4642 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
4643 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
4644
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4645 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
4646 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
4647
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4648 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
4649
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4650 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
4651 movement. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4652
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4653 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4654 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
4655 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
4656 int insist;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4657 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
4658 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
4659 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
4660 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
4661 {
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4662 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
4663
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4664 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4665
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4666 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
4667 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
4668 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4669 {
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4670 Lisp_Object frame, tail;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4671
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4672 /* 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
4673 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
4674 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
4675
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4676 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
4677
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4678 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
4679 && 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
4680 f1 = last_mouse_frame;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4681 else
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4682 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
4683
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4684 if (f1)
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4685 {
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4686 /* 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
4687 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
4688 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
4689 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
4690 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
4691 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
4692 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
4693 Point mouse_pos;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4694
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
4695 #if TARGET_API_MAC_CARBON
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
4696 GetGlobalMouse (&mouse_pos);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
4697 mouse_pos.h -= f1->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f1);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
4698 mouse_pos.v -= f1->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f1);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
4699 #else
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4700 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
4701 GetMouse (&mouse_pos);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
4702 #endif
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4703 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
4704 &last_mouse_glyph);
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
4705 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
4706
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4707 *bar_window = Qnil;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4708 *part = 0;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4709 *fp = f1;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4710 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
4711 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
4712 *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
4713 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4714 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4715
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4716 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4717 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4718
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4719
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4720 /************************************************************************
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4721 Toolkit scroll bars
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4722 ************************************************************************/
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4723
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4724 #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
4725
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4726 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
4727 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
4728 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
4729 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
4730 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
4731 struct input_event *));
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4732 static OSStatus get_control_part_bounds P_ ((ControlRef, ControlPartCode,
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4733 Rect *));
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4734 static void x_scroll_bar_handle_press P_ ((struct scroll_bar *,
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4735 ControlPartCode, Point,
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4736 struct input_event *));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4737 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
4738 struct input_event *));
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4739 static void x_scroll_bar_handle_drag P_ ((WindowRef, 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
4740 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
4741 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
4742 int, int, int));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4743
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4744 /* 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
4745
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4746 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
4747
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4748 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
4749
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4750 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
4751
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4752 #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
4753 #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
4754
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4755 static pascal void
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4756 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
4757 EventLoopTimerRef timer;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4758 void *data;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4759 {
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4760 OSStatus err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4761
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4762 err = mac_post_mouse_moved_event ();
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4763 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4764 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
4765 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4766
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4767 static OSStatus
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4768 install_scroll_bar_timer ()
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4769 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4770 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
4771
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4772 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
4773 scroll_bar_timer_callbackUPP =
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4774 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
4775
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4776 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
4777 /* 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
4778 kEventDurationForever as delays. */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4779 return
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4780 InstallEventLoopTimer (GetCurrentEventLoop (),
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4781 kEventDurationForever, kEventDurationForever,
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4782 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
4783 &scroll_bar_timer);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4784 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4785
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4786 static OSStatus
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4787 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
4788 EventTimerInterval delay;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4789 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4790 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
4791 install_scroll_bar_timer ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4792
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4793 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
4794
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4795 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
4796 }
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 static int
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4799 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
4800 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4801 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4802 switch (part_code)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4803 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4804 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
4805 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
4806 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
4807 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
4808 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
4809 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4810
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4811 return -1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4812 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4813
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4814 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
4815 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
4816 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4817 int part;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4818 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4819 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4820 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
4821 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
4822 bufp->arg = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4823 bufp->part = part;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4824 bufp->code = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4825 XSETINT (bufp->x, 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4826 XSETINT (bufp->y, 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4827 bufp->modifiers = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4828 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4829
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4830 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
4831 get_control_part_bounds (ch, part_code, rect)
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4832 ControlRef ch;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4833 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4834 Rect *rect;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4835 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4836 RgnHandle region = NewRgn ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4837 OSStatus err;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4838
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4839 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
4840 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4841 GetRegionBounds (region, rect);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4842 DisposeRgn (region);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4843
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4844 return err;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4845 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4846
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4847 static void
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4848 x_scroll_bar_handle_press (bar, part_code, mouse_pos, bufp)
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4849 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4850 ControlPartCode part_code;
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4851 Point mouse_pos;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4852 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4853 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4854 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
4855
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4856 if (part < 0)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4857 return;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4858
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4859 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
4860 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4861 construct_scroll_bar_click (bar, part, bufp);
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4862 HiliteControl (SCROLL_BAR_CONTROL_REF (bar), part_code);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4863 set_scroll_bar_timer (SCROLL_BAR_FIRST_DELAY);
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4864 bar->dragging = Qnil;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4865 }
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4866 else
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4867 {
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4868 Rect r;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4869
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4870 get_control_part_bounds (SCROLL_BAR_CONTROL_REF (bar),
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4871 kControlIndicatorPart, &r);
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4872 XSETINT (bar->dragging, - (mouse_pos.v - r.top) - 1);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4873 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4874
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4875 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
4876 tracked_scroll_bar = bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4877 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4878
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4879 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
4880 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
4881 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4882 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4883 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4884 if (last_scroll_bar_part != scroll_bar_handle
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4885 || (INTEGERP (bar->dragging) && XINT (bar->dragging) >= 0))
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4886 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
4887
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4888 HiliteControl (SCROLL_BAR_CONTROL_REF (bar), 0);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4889 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
4890
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4891 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
4892 bar->dragging = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4893 tracked_scroll_bar = NULL;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4894 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4895
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4896 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
4897 x_scroll_bar_handle_drag (win, bar, mouse_pos, bufp)
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4898 WindowRef win;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4899 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4900 Point mouse_pos;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4901 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4902 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4903 ControlRef ch = SCROLL_BAR_CONTROL_REF (bar);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4904
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4905 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
4906 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4907 int top, top_range;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4908 Rect r;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4909
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4910 get_control_part_bounds (SCROLL_BAR_CONTROL_REF (bar),
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
4911 kControlIndicatorPart, &r);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4912
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4913 if (INTEGERP (bar->dragging) && XINT (bar->dragging) < 0)
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4914 XSETINT (bar->dragging, - (XINT (bar->dragging) + 1));
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4915
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4916 top = mouse_pos.v - XINT (bar->dragging) - XINT (bar->track_top);
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4917 top_range = XINT (bar->track_height) - XINT (bar->min_handle);
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4918
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4919 if (top < 0)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4920 top = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4921 if (top > top_range)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4922 top = top_range;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4923
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4924 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
4925 XSETINT (bufp->x, top);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4926 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
4927 }
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4928 else
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4929 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4930 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4931 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
4932
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4933 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
4934 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4935 else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4936 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4937 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
4938
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4939 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
4940 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4941 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
4942 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
4943 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
4944 && 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
4945 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4946 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4947
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4948 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
4949 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
4950 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
4951 && 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
4952 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4953 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4954 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4955 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4956
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4957 if (unhilite_p)
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4958 HiliteControl (SCROLL_BAR_CONTROL_REF (bar), 0);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4959 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
4960 || 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
4961 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4962 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
4963 last_scroll_bar_part = part;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4964 HiliteControl (SCROLL_BAR_CONTROL_REF (bar), part_code);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4965 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
4966 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4967 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4968 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4969
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4970 /* 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
4971 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
4972
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4973 static void
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4974 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
4975 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4976 int portion, position, whole;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4977 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4978 ControlRef ch = SCROLL_BAR_CONTROL_REF (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
4979 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
4980
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4981 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
4982 return;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4983
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4984 if (whole <= portion)
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4985 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
4986 else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4987 {
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4988 float scale;
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4989
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4990 maximum = XINT (bar->track_height) - XINT (bar->min_handle);
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4991 scale = (float) maximum / (whole - portion);
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4992 value = position * scale + 0.5f;
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4993 viewsize = (int) (portion * scale + 0.5f) + XINT (bar->min_handle);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4994 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4995
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4996 BLOCK_INPUT;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4997
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4998 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
4999 || 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
5000 || 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
5001 {
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
5002 /* 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
5003 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
5004
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
5005 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
5006 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
5007 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
5008
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
5009 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
5010 }
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
5011
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5012 UNBLOCK_INPUT;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5013 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5014
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5015 #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
5016
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5017
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5018
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5019 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5020 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
5021 ************************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5022
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5023 /* 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
5024 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
5025 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
5026 scroll bar. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5027
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5028 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
5029 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
5030 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
5031 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
5032 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5033 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
5034 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
5035 = 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
5036 Rect r;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5037 ControlRef ch;
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 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5040
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5041 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
5042 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
5043 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
5044 r.bottom = disp_top + disp_height;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5045
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5046 #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
5047 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
5048 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5049 #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
5050 ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p",
76331
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
5051 #ifdef USE_TOOLKIT_SCROLL_BARS
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5052 false,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5053 #else
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5054 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
5055 #endif
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5056 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
5057 #else
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5058 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
5059 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
5060 #endif
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5061 SET_SCROLL_BAR_CONTROL_REF (bar, ch);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5062
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5063 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
5064 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
5065 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
5066 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
5067 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
5068 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
5069 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
5070 bar->dragging = Qnil;
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5071 #ifdef MAC_OSX
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5072 bar->fringe_extended_p = Qnil;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5073 #endif
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5074 #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
5075 bar->track_top = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5076 bar->track_height = Qnil;
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
5077 bar->min_handle = Qnil;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5078 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5079
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5080 /* 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
5081 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
5082 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
5083 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
5084 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
5085 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
5086
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5087 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5088 return bar;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5089 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5090
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5091
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5092 /* Draw BAR's handle in the proper position.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5093
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5094 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
5095 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
5096 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
5097 events.)
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 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
5100 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
5101 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
5102 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
5103 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
5104
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5105 #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
5106
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5107 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5108 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
5109 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
5110 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
5111 int rebuild;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5112 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5113 int dragging = ! NILP (bar->dragging);
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5114 ControlRef ch = SCROLL_BAR_CONTROL_REF (bar);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5115 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
5116 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
5117 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
5118
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5119 /* 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
5120 if (! rebuild
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5121 && 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
5122 && 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
5123 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5124
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5125 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5126
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5127 /* 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
5128 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
5129 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
5130 start = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5131 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
5132 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
5133 end = start + length;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5134
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5135 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
5136 end = start;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5137 else if (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
5138 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
5139
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5140 /* 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
5141 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
5142 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
5143
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5144 /* 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
5145 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
5146 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
5147
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5148 /* 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
5149 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
5150 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
5151 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
5152
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5153 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
5154 /* 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
5155 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
5156 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
5157 - (end - start));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5158 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
5159 #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
5160 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
5161 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5162
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5163 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5164 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5165
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5166 #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
5167
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5168 /* 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
5169 nil. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5170
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5171 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5172 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
5173 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
5174 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5175 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
5176
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5177 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5178
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5179 #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
5180 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
5181 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5182 /* Destroy the Mac scroll bar control */
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5183 DisposeControl (SCROLL_BAR_CONTROL_REF (bar));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5184
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5185 /* 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
5186 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
5187
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5188 UNBLOCK_INPUT;
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
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5191
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5192 /* 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
5193 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
5194 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
5195 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
5196
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5197 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5198 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
5199 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
5200 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
5201 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5202 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
5203 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
5204 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
5205 int window_y, window_height;
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5206 #ifdef MAC_OSX
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5207 int fringe_extended_p;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5208 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5209
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5210 /* Get window dimensions. */
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5211 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
5212 top = window_y;
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5213 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
5214 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
5215
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5216 /* 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
5217 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
5218
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5219 /* 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
5220 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
5221 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
5222 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
5223 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5224 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
5225
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5226 /* 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
5227 if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w))
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5228 sb_left = left + (WINDOW_RIGHTMOST_P (w) ? width - sb_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
5229 else
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5230 sb_left = left + (WINDOW_LEFTMOST_P (w) ? 0 : width - sb_width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5231
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5232 /* 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
5233 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
5234 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
5235 #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
5236 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
5237 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5238 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
5239 disp_height++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5240 }
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5241 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
5242 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5243 disp_top++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5244 disp_height--;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5245 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5246
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5247 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
5248 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
5249 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5250
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5251 #ifdef MAC_OSX
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5252 if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5253 fringe_extended_p = (WINDOW_LEFTMOST_P (w)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5254 && WINDOW_LEFT_FRINGE_WIDTH (w)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5255 && (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5256 || WINDOW_LEFT_MARGIN_COLS (w) == 0));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5257 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5258 fringe_extended_p = (WINDOW_RIGHTMOST_P (w)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5259 && WINDOW_RIGHT_FRINGE_WIDTH (w)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5260 && (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5261 || WINDOW_RIGHT_MARGIN_COLS (w) == 0));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5262 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5263
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5264 /* 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
5265 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
5266 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5267 BLOCK_INPUT;
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5268 #ifdef MAC_OSX
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5269 if (fringe_extended_p)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5270 mac_clear_area (f, sb_left, top, sb_width, height);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5271 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5272 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5273 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
5274 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5275 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
5276 disp_height);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5277 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
5278 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5279 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5280 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5281 /* It may just need to be moved and resized. */
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5282 ControlRef ch;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
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 bar = XSCROLL_BAR (w->vertical_scroll_bar);
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5285 ch = SCROLL_BAR_CONTROL_REF (bar);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5286
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5287 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5288
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5289 /* 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
5290 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
5291 && 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
5292 && XINT (bar->width) == sb_width
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5293 && XINT (bar->height) == height
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5294 #ifdef MAC_OSX
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5295 && !NILP (bar->fringe_extended_p) == fringe_extended_p
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5296 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5297 ))
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5298 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
5299 /* 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
5300 for them on the frame, we have to clear "under" them. */
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5301 #ifdef MAC_OSX
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5302 if (fringe_extended_p)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5303 mac_clear_area (f, sb_left, top, sb_width, height);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5304 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5305 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5306 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
5307
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5308 #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
5309 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
5310 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5311 HideControl (ch);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5312 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
5313 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
5314 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
5315 #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
5316 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
5317 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
5318 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5319
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5320 /* 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
5321 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
5322 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
5323 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
5324 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
5325 #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
5326 bar->track_top = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5327 bar->track_height = Qnil;
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
5328 bar->min_handle = Qnil;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5329 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5330 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5331
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5332 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5333 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5334
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5335 #ifdef MAC_OSX
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5336 bar->fringe_extended_p = fringe_extended_p ? Qt : Qnil;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5337 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5338
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5339 #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
5340 if (NILP (bar->track_top))
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5341 {
76371
fc4f77227fc8 (XTset_vertical_scroll_bar) [MAC_OSX]: Don't show scroll
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76331
diff changeset
5342 if (sb_width >= disp_height
fc4f77227fc8 (XTset_vertical_scroll_bar) [MAC_OSX]: Don't show scroll
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76331
diff changeset
5343 #ifdef MAC_OSX
fc4f77227fc8 (XTset_vertical_scroll_bar) [MAC_OSX]: Don't show scroll
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76331
diff changeset
5344 || sb_width < MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH
fc4f77227fc8 (XTset_vertical_scroll_bar) [MAC_OSX]: Don't show scroll
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76331
diff changeset
5345 #endif
fc4f77227fc8 (XTset_vertical_scroll_bar) [MAC_OSX]: Don't show scroll
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76331
diff changeset
5346 )
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5347 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5348 XSETINT (bar->track_top, 0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5349 XSETINT (bar->track_height, 0);
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
5350 XSETINT (bar->min_handle, 0);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5351 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5352 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5353 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5354 ControlRef ch = SCROLL_BAR_CONTROL_REF (bar);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5355 Rect r0, r1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5356
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5357 BLOCK_INPUT;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5358
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5359 SetControl32BitMinimum (ch, 0);
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
5360 SetControl32BitMaximum (ch, 1 << 30);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5361 SetControlViewSize (ch, 1);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5362
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5363 /* Move the scroll bar thumb to the top. */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5364 SetControl32BitValue (ch, 0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5365 get_control_part_bounds (ch, kControlIndicatorPart, &r0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5366
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5367 /* Move the scroll bar thumb to the bottom. */
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
5368 SetControl32BitValue (ch, 1 << 30);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5369 get_control_part_bounds (ch, kControlIndicatorPart, &r1);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5370
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5371 UnionRect (&r0, &r1, &r0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5372 XSETINT (bar->track_top, r0.top);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5373 XSETINT (bar->track_height, r0.bottom - r0.top);
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
5374 XSETINT (bar->min_handle, r1.bottom - r1.top);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5375
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5376 /* Don't show the scroll bar if its height is not enough to
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5377 display the scroll bar thumb. */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5378 if (r0.bottom - r0.top > 0)
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5379 ShowControl (ch);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5380
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5381 UNBLOCK_INPUT;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5382 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5383 }
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5384
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5385 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
5386 #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
5387 /* 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
5388 dragged. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5389 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
5390 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5391 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
5392
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5393 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
5394 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
5395 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5396 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5397 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
5398 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
5399 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
5400 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5401 }
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5402 #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
5403 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5404
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5405
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5406 /* 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
5407 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
5408 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
5409 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
5410 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
5411 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
5412 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
5413
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5414 /* 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
5415 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
5416 `*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
5417
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5418 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5419 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
5420 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
5421 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5422 /* 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
5423 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
5424 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5425 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
5426 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
5427 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
5428 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
5429 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
5430 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
5431 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
5432 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
5433 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5434 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5435
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5436
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5437 /* 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
5438 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
5439
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5440 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5441 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
5442 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
5443 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5444 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
5445 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
5446
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5447 /* 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
5448 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
5449 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5450
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5451 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
5452
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5453 /* 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
5454 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
5455 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
5456 {
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5457 /* 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
5458 the lists. */
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5459 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
5460 /* 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
5461 return;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5462 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
5463 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
5464 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
5465 else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5466 /* 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
5467 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
5468 abort ();
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5469 }
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5470 else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5471 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
5472
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5473 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
5474 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
5475
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5476 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
5477 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
5478 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
5479 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
5480 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
5481 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5482
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5483 /* 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
5484 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
5485
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5486 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5487 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
5488 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
5489 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5490 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
5491
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5492 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
5493
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5494 /* 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
5495 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
5496 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
5497
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5498 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
5499 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5500 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
5501
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5502 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
5503
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5504 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
5505 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
5506 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5507
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5508 /* 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
5509 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
5510 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5511
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5512
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5513 /* 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
5514 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
5515
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5516 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
5517 mark bits. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5518
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5519 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5520 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
5521 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
5522 ControlPartCode part_code;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
5523 const EventRecord *er;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5524 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
5525 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5526 int win_y, top_range;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5527
90970
3371fc48749b Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 90951
diff changeset
5528 if (! WINDOWP (bar->window))
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5529 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5530
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 45197
diff changeset
5531 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
5532 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
5533 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
5534
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5535 bar->dragging = Qnil;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5536
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5537 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
5538 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5539 case kControlUpButtonPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5540 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
5541 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5542 case kControlDownButtonPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5543 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
5544 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5545 case kControlPageUpPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5546 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
5547 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5548 case kControlPageDownPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5549 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
5550 break;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5551 #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
5552 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5553 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5554 case kControlIndicatorPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5555 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5556 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
5557 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
5558 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
5559 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
5560 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5561 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5562
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5563 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
5564 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
5565
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5566 win_y -= VERTICAL_SCROLL_BAR_TOP_BORDER;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5567
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5568 win_y -= 24;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5569
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5570 if (! NILP (bar->dragging))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5571 win_y -= XINT (bar->dragging);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5572
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5573 if (win_y < 0)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5574 win_y = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5575 if (win_y > top_range)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5576 win_y = top_range;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5577
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5578 XSETINT (bufp->x, win_y);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5579 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
5580 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5581
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5582 #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
5583
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5584 /* 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
5585
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5586 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
5587 mark bits. */
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5590 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
5591 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
5592 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
5593 Time t;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5594 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5595 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
5596
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5597 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
5598
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5599 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
5600 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
5601
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5602 /* If we're dragging the bar, display it. */
90970
3371fc48749b Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 90951
diff changeset
5603 if (! NILP (bar->dragging))
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5604 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5605 /* 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
5606 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
5607
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5608 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
5609 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5610 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
5611
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5612 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
5613 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5614 }
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
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5617 #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
5618
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5619 /* 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
5620 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
5621
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5622 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5623 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
5624 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
5625 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
5626 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
5627 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
5628 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
5629 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5630 struct scroll_bar *bar = XSCROLL_BAR (last_mouse_scroll_bar);
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5631 ControlRef ch = SCROLL_BAR_CONTROL_REF (bar);
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5632 #if TARGET_API_MAC_CARBON
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5633 WindowRef wp = GetControlOwner (ch);
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5634 #else
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5635 WindowRef wp = (*ch)->contrlOwner;
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5636 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5637 Point mouse_pos;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5638 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
5639 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
5640
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
5641 #if TARGET_API_MAC_CARBON
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
5642 GetGlobalMouse (&mouse_pos);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
5643 mouse_pos.h -= f->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
5644 mouse_pos.v -= f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
5645 #else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5646 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
5647 GetMouse (&mouse_pos);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
5648 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5649
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5650 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
5651 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
5652
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5653 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
5654
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5655 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
5656
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5657 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
5658 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
5659
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5660 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
5661 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
5662 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
5663 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
5664
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5665 *fp = f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5666 *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
5667
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5668 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
5669 *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
5670 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
5671 *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
5672 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
5673 *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
5674 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5675 *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
5676
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5677 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
5678 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
5679
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5680 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
5681 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
5682
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5683 *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
5684 }
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5685
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5686
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5687 /* 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
5688 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
5689 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
5690 redraw them. */
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5691
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5692 void
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5693 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
5694 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
5695 {
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5696 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
5697 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
5698 }
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5699
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5700
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5701 /***********************************************************************
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5702 Tool-bars
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5703 ***********************************************************************/
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5704 #if USE_MAC_TOOLBAR
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5705
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5706 /* In identifiers such as function/variable names, Emacs tool bar is
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5707 referred to as `tool_bar', and Carbon HIToolbar as `toolbar'. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5708
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5709 #define TOOLBAR_IDENTIFIER (CFSTR ("org.gnu.Emacs.toolbar"))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5710 #define TOOLBAR_ICON_ITEM_IDENTIFIER (CFSTR ("org.gnu.Emacs.toolbar.icon"))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5711
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5712 #define TOOLBAR_ITEM_COMMAND_ID_OFFSET 'Tb\0\0'
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5713 #define TOOLBAR_ITEM_COMMAND_ID_P(id) \
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5714 (((id) & ~0xffff) == TOOLBAR_ITEM_COMMAND_ID_OFFSET)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5715 #define TOOLBAR_ITEM_COMMAND_ID_VALUE(id) \
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5716 ((id) - TOOLBAR_ITEM_COMMAND_ID_OFFSET)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5717 #define TOOLBAR_ITEM_MAKE_COMMAND_ID(value) \
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5718 ((value) + TOOLBAR_ITEM_COMMAND_ID_OFFSET)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5719
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5720 static int mac_event_to_emacs_modifiers P_ ((EventRef));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5721 static void mac_handle_origin_change P_ ((struct frame *));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5722 static OSStatus mac_handle_toolbar_command_event P_ ((EventHandlerCallRef,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5723 EventRef, void *));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5724
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5725 static void
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5726 mac_move_window_with_gravity (f, win_gravity, left, top)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5727 struct frame *f;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5728 int win_gravity;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5729 short left, top;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5730 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5731 Rect inner, outer;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5732
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5733 mac_get_window_bounds (f, &inner, &outer);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5734
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5735 switch (win_gravity)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5736 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5737 case NorthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5738 case WestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5739 case SouthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5740 left += inner.left - outer.left;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5741 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5742
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5743 case NorthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5744 case CenterGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5745 case SouthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5746 left += ((inner.left - outer.left) + (inner.right - outer.right)) / 2;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5747 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5748
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5749 case NorthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5750 case EastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5751 case SouthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5752 left += inner.right - outer.right;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5753 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5754 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5755
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5756 switch (win_gravity)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5757 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5758 case NorthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5759 case NorthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5760 case NorthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5761 top += inner.top - outer.top;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5762 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5763
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5764 case WestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5765 case CenterGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5766 case EastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5767 top += ((inner.top - outer.top) + (inner.bottom - outer.bottom)) / 2;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5768 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5769
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5770 case SouthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5771 case SouthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5772 case SouthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5773 top += inner.bottom - outer.bottom;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5774 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5775 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5776
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5777 MoveWindow (FRAME_MAC_WINDOW (f), left, top, false);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5778 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5779
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5780 static void
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5781 mac_get_window_origin_with_gravity (f, win_gravity, left, top)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5782 struct frame *f;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5783 int win_gravity;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5784 short *left, *top;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5785 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5786 Rect inner, outer;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5787
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5788 mac_get_window_bounds (f, &inner, &outer);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5789
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5790 switch (win_gravity)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5791 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5792 case NorthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5793 case WestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5794 case SouthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5795 *left = outer.left;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5796 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5797
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5798 case NorthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5799 case CenterGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5800 case SouthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5801 *left = outer.left + ((outer.right - outer.left)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5802 - (inner.right - inner.left)) / 2;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5803 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5804
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5805 case NorthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5806 case EastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5807 case SouthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5808 *left = outer.right - (inner.right - inner.left);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5809 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5810 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5811
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5812 switch (win_gravity)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5813 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5814 case NorthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5815 case NorthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5816 case NorthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5817 *top = outer.top;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5818 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5819
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5820 case WestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5821 case CenterGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5822 case EastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5823 *top = outer.top + ((outer.bottom - outer.top)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5824 - (inner.bottom - inner.top)) / 2;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5825 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5826
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5827 case SouthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5828 case SouthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5829 case SouthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5830 *top = outer.bottom - (inner.bottom - inner.top);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5831 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5832 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5833 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5834
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5835 static OSStatus
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5836 mac_handle_toolbar_event (next_handler, event, data)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5837 EventHandlerCallRef next_handler;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5838 EventRef event;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5839 void *data;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5840 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5841 OSStatus err, result = eventNotHandledErr;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5842
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5843 switch (GetEventKind (event))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5844 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5845 case kEventToolbarGetDefaultIdentifiers:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5846 result = noErr;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5847 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5848
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5849 case kEventToolbarGetAllowedIdentifiers:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5850 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5851 CFMutableArrayRef array;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5852
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5853 GetEventParameter (event, kEventParamMutableArray,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5854 typeCFMutableArrayRef, NULL,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5855 sizeof (CFMutableArrayRef), NULL, &array);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5856 CFArrayAppendValue (array, TOOLBAR_ICON_ITEM_IDENTIFIER);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5857 result = noErr;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5858 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5859 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5860
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5861 case kEventToolbarCreateItemWithIdentifier:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5862 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5863 CFStringRef identifier;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5864 HIToolbarItemRef item = NULL;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5865
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5866 GetEventParameter (event, kEventParamToolbarItemIdentifier,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5867 typeCFStringRef, NULL,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5868 sizeof (CFStringRef), NULL, &identifier);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5869
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5870 if (CFStringCompare (identifier, TOOLBAR_ICON_ITEM_IDENTIFIER, 0)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5871 == kCFCompareEqualTo)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5872 HIToolbarItemCreate (identifier,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5873 kHIToolbarItemAllowDuplicates
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5874 | kHIToolbarItemCantBeRemoved, &item);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5875
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5876 if (item)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5877 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5878 SetEventParameter (event, kEventParamToolbarItem,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5879 typeHIToolbarItemRef,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5880 sizeof (HIToolbarItemRef), &item);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5881 result = noErr;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5882 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5883 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5884 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5885
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5886 default:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5887 abort ();
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5888 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5889
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5890 return result;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5891 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5892
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5893 static CGImageRef
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5894 mac_image_spec_to_cg_image (f, image)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5895 struct frame *f;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5896 Lisp_Object image;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5897 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5898 if (!valid_image_p (image))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5899 return NULL;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5900 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5901 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5902 int img_id = lookup_image (f, image);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5903 struct image *img = IMAGE_FROM_ID (f, img_id);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5904
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5905 prepare_image_for_display (f, img);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5906
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5907 return img->data.ptr_val;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5908 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5909 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5910
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5911 /* Create a tool bar for frame F. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5912
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5913 static OSStatus
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5914 mac_create_frame_tool_bar (f)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5915 FRAME_PTR f;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5916 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5917 OSStatus err;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5918 HIToolbarRef toolbar;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5919
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5920 err = HIToolbarCreate (TOOLBAR_IDENTIFIER, kHIToolbarNoAttributes,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5921 &toolbar);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5922 if (err == noErr)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5923 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5924 static const EventTypeSpec specs[] =
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5925 {{kEventClassToolbar, kEventToolbarGetDefaultIdentifiers},
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5926 {kEventClassToolbar, kEventToolbarGetAllowedIdentifiers},
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5927 {kEventClassToolbar, kEventToolbarCreateItemWithIdentifier}};
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5928
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5929 err = InstallEventHandler (HIObjectGetEventTarget (toolbar),
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5930 mac_handle_toolbar_event,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5931 GetEventTypeCount (specs), specs,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5932 f, NULL);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5933 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5934
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5935 if (err == noErr)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5936 err = HIToolbarSetDisplayMode (toolbar, kHIToolbarDisplayModeIconOnly);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5937 if (err == noErr)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5938 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5939 static const EventTypeSpec specs[] =
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5940 {{kEventClassCommand, kEventCommandProcess}};
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5941
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5942 err = InstallWindowEventHandler (FRAME_MAC_WINDOW (f),
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5943 mac_handle_toolbar_command_event,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5944 GetEventTypeCount (specs),
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5945 specs, f, NULL);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5946 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5947 if (err == noErr)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5948 err = SetWindowToolbar (FRAME_MAC_WINDOW (f), toolbar);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5949
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5950 if (toolbar)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5951 CFRelease (toolbar);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5952
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5953 return err;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5954 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5955
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5956 /* Update the tool bar for frame F. Add new buttons and remove old. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5957
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5958 void
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5959 update_frame_tool_bar (f)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5960 FRAME_PTR f;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5961 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5962 HIToolbarRef toolbar = NULL;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5963 short left, top;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5964 CFArrayRef old_items = NULL;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5965 CFIndex old_count;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5966 int i, pos, win_gravity = f->output_data.mac->toolbar_win_gravity;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5967 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5968
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5969 BLOCK_INPUT;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5970
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5971 GetWindowToolbar (FRAME_MAC_WINDOW (f), &toolbar);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5972 if (toolbar == NULL)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5973 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5974 mac_create_frame_tool_bar (f);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5975 GetWindowToolbar (FRAME_MAC_WINDOW (f), &toolbar);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5976 if (toolbar == NULL)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5977 goto out;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5978 if (win_gravity >= NorthWestGravity && win_gravity <= SouthEastGravity)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5979 mac_get_window_origin_with_gravity (f, win_gravity, &left, &top);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5980 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5981
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5982 HIToolbarCopyItems (toolbar, &old_items);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5983 if (old_items == NULL)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5984 goto out;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5985
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5986 old_count = CFArrayGetCount (old_items);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5987 pos = 0;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5988 for (i = 0; i < f->n_tool_bar_items; ++i)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5989 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5990 #define PROP(IDX) AREF (f->tool_bar_items, i * TOOL_BAR_ITEM_NSLOTS + (IDX))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5991
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5992 int enabled_p = !NILP (PROP (TOOL_BAR_ITEM_ENABLED_P));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5993 int selected_p = !NILP (PROP (TOOL_BAR_ITEM_SELECTED_P));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5994 int idx;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5995 Lisp_Object image;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5996 CGImageRef cg_image;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5997 CFStringRef label;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5998 HIToolbarItemRef item;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5999
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6000 /* If image is a vector, choose the image according to the
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6001 button state. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6002 image = PROP (TOOL_BAR_ITEM_IMAGES);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6003 if (VECTORP (image))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6004 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6005 if (enabled_p)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6006 idx = (selected_p
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6007 ? TOOL_BAR_IMAGE_ENABLED_SELECTED
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6008 : TOOL_BAR_IMAGE_ENABLED_DESELECTED);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6009 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6010 idx = (selected_p
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6011 ? TOOL_BAR_IMAGE_DISABLED_SELECTED
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6012 : TOOL_BAR_IMAGE_DISABLED_DESELECTED);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6013
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6014 xassert (ASIZE (image) >= idx);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6015 image = AREF (image, idx);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6016 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6017 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6018 idx = -1;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6019
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6020 cg_image = mac_image_spec_to_cg_image (f, image);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6021 /* Ignore invalid image specifications. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6022 if (cg_image == NULL)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6023 continue;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6024
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6025 label = cfstring_create_with_string (PROP (TOOL_BAR_ITEM_CAPTION));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6026 if (label == NULL)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6027 label = CFSTR ("");
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6028
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6029 if (pos < old_count)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6030 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6031 CGImageRef old_cg_image = NULL;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6032 CFStringRef old_label = NULL;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6033 Boolean old_enabled_p;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6034
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6035 item = (HIToolbarItemRef) CFArrayGetValueAtIndex (old_items, pos);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6036
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6037 HIToolbarItemCopyImage (item, &old_cg_image);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6038 if (cg_image != old_cg_image)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6039 HIToolbarItemSetImage (item, cg_image);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6040 CGImageRelease (old_cg_image);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6041
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6042 HIToolbarItemCopyLabel (item, &old_label);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6043 if (CFStringCompare (label, old_label, 0) != kCFCompareEqualTo)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6044 HIToolbarItemSetLabel (item, label);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6045 CFRelease (old_label);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6046
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6047 old_enabled_p = HIToolbarItemIsEnabled (item);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6048 if ((enabled_p || idx >= 0) != old_enabled_p)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6049 HIToolbarItemSetEnabled (item, (enabled_p || idx >= 0));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6050 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6051 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6052 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6053 item = NULL;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6054 HIToolbarCreateItemWithIdentifier (toolbar,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6055 TOOLBAR_ICON_ITEM_IDENTIFIER,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6056 NULL, &item);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6057 if (item)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6058 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6059 HIToolbarItemSetImage (item, cg_image);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6060 HIToolbarItemSetLabel (item, label);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6061 HIToolbarItemSetEnabled (item, (enabled_p || idx >= 0));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6062 HIToolbarAppendItem (toolbar, item);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6063 CFRelease (item);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6064 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6065 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6066
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6067 CFRelease (label);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6068 if (item)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6069 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6070 HIToolbarItemSetCommandID (item, TOOLBAR_ITEM_MAKE_COMMAND_ID (i));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6071 pos++;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6072 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6073 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6074
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6075 CFRelease (old_items);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6076
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6077 while (pos < old_count)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6078 HIToolbarRemoveItemAtIndex (toolbar, --old_count);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6079
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6080 ShowHideWindowToolbar (FRAME_MAC_WINDOW (f), true,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6081 !win_gravity && f == mac_focus_frame (dpyinfo));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6082 /* Mac OS X 10.3 does not issue kEventWindowBoundsChanged events on
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6083 toolbar visibility change. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6084 mac_handle_origin_change (f);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6085 if (win_gravity >= NorthWestGravity && win_gravity <= SouthEastGravity)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6086 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6087 mac_move_window_with_gravity (f, win_gravity, left, top);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6088 /* If the title bar is completely outside the screen, adjust the
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6089 position. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6090 ConstrainWindowToScreen (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6091 kWindowConstrainMoveRegardlessOfFit
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6092 | kWindowConstrainAllowPartial, NULL, NULL);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6093 f->output_data.mac->toolbar_win_gravity = 0;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6094 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6095
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6096 out:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6097 UNBLOCK_INPUT;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6098 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6099
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6100 /* Hide the tool bar on frame F. Unlike the counterpart on GTK+, it
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6101 doesn't deallocate the resources. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6102
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6103 void
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6104 free_frame_tool_bar (f)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6105 FRAME_PTR f;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6106 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6107 if (IsWindowToolbarVisible (FRAME_MAC_WINDOW (f)))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6108 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6109 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6110
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6111 BLOCK_INPUT;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6112 ShowHideWindowToolbar (FRAME_MAC_WINDOW (f), false,
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
6113 (NILP (Fsymbol_value
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
6114 (intern ("frame-notice-user-settings")))
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
6115 && f == mac_focus_frame (dpyinfo)));
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6116 /* Mac OS X 10.3 does not issue kEventWindowBoundsChanged events
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6117 on toolbar visibility change. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6118 mac_handle_origin_change (f);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6119 UNBLOCK_INPUT;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6120 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6121 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6122
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6123 static void
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6124 mac_tool_bar_note_mouse_movement (f, event)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6125 struct frame *f;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6126 EventRef event;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6127 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6128 OSStatus err;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6129 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6130 int mouse_down_p;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6131 HIViewRef item_view;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6132 UInt32 command_id;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6133
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6134 mouse_down_p = (dpyinfo->grabbed
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6135 && f == last_mouse_frame
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6136 && FRAME_LIVE_P (f));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6137 if (mouse_down_p)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6138 return;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6139
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6140 err = HIViewGetViewForMouseEvent (HIViewGetRoot (FRAME_MAC_WINDOW (f)),
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6141 event, &item_view);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6142 /* This doesn't work on Mac OS X 10.2. On Mac OS X 10.3 and 10.4, a
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6143 toolbar item view seems to have the same command ID with that of
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6144 the toolbar item. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6145 if (err == noErr)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6146 err = GetControlCommandID (item_view, &command_id);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6147 if (err == noErr && TOOLBAR_ITEM_COMMAND_ID_P (command_id))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6148 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6149 int i = TOOLBAR_ITEM_COMMAND_ID_VALUE (command_id);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6150
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6151 if (i < f->n_tool_bar_items)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6152 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6153 HIRect bounds;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6154 HIViewRef content_view;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6155
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6156 err = HIViewGetBounds (item_view, &bounds);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6157 if (err == noErr)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6158 err = HIViewFindByID (HIViewGetRoot (FRAME_MAC_WINDOW (f)),
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6159 kHIViewWindowContentID, &content_view);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6160 if (err == noErr)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6161 err = HIViewConvertRect (&bounds, item_view, content_view);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6162 if (err == noErr)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6163 SetRect (&last_mouse_glyph,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6164 CGRectGetMinX (bounds), CGRectGetMinY (bounds),
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6165 CGRectGetMaxX (bounds), CGRectGetMaxY (bounds));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6166
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6167 help_echo_object = help_echo_window = Qnil;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6168 help_echo_pos = -1;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6169 help_echo_string = PROP (TOOL_BAR_ITEM_HELP);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6170 if (NILP (help_echo_string))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6171 help_echo_string = PROP (TOOL_BAR_ITEM_CAPTION);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6172 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6173 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6174 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6175
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6176 static OSStatus
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6177 mac_handle_toolbar_command_event (next_handler, event, data)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6178 EventHandlerCallRef next_handler;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6179 EventRef event;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6180 void *data;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6181 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6182 OSStatus err, result = eventNotHandledErr;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6183 struct frame *f = (struct frame *) data;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6184 HICommand command;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6185
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6186 err = GetEventParameter (event, kEventParamDirectObject,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6187 typeHICommand, NULL,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6188 sizeof (HICommand), NULL, &command);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6189 if (err != noErr)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6190 return result;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6191
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6192 switch (GetEventKind (event))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6193 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6194 case kEventCommandProcess:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6195 if (!TOOLBAR_ITEM_COMMAND_ID_P (command.commandID))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6196 result = CallNextEventHandler (next_handler, event);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6197 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6198 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6199 int i = TOOLBAR_ITEM_COMMAND_ID_VALUE (command.commandID);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6200
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6201 if (i < f->n_tool_bar_items
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6202 && !NILP (PROP (TOOL_BAR_ITEM_ENABLED_P)))
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6203 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6204 Lisp_Object frame;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6205 struct input_event buf;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6206
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6207 EVENT_INIT (buf);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6208
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6209 XSETFRAME (frame, f);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6210 buf.kind = TOOL_BAR_EVENT;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6211 buf.frame_or_window = frame;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6212 buf.arg = frame;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6213 kbd_buffer_store_event (&buf);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6214
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6215 buf.kind = TOOL_BAR_EVENT;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6216 buf.frame_or_window = frame;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6217 buf.arg = PROP (TOOL_BAR_ITEM_KEY);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6218 buf.modifiers = mac_event_to_emacs_modifiers (event);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6219 kbd_buffer_store_event (&buf);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6220
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6221 result = noErr;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6222 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6223 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6224 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6225
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6226 default:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6227 abort ();
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6228 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6229 #undef PROP
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6230
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6231 return result;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6232 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6233 #endif /* USE_MAC_TOOLBAR */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6234
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6235
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6236 /***********************************************************************
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6237 Text Cursor
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6238 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6239
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6240 /* 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
6241 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
6242
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6243 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
6244 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
6245 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
6246
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6247 static void
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
6248 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
6249 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
6250 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
6251 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
6252 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6253 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6254 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
6255 Rect clip_rect;
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
6256 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
6257
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
6258 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
6259
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
6260 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
6261 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
6262 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
6263 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
6264 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
6265
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
6266 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
6267 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6268
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6269
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6270 /* 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
6271
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6272 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6273 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
6274 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
6275 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
6276 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6277 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
6278 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
6279 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
6280 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
6281 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6282 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
6283 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6284
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6285 /* 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
6286 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
6287 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
6288 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
6289 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6290
59748
1df465faf1df (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
Kim F. Storm <storm@cua.dk>
parents: 59718
diff changeset
6291 /* Compute frame-relative coordinates for phys cursor. */
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
6292 get_phys_cursor_geometry (w, row, cursor_glyph, &x, &y, &h);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
6293 wd = w->phys_cursor_width;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6294
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6295 /* 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
6296 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
6297 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
6298 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
6299 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
6300 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6301 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
6302 GCForeground, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6303 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
6304
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6305 /* 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
6306 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
6307 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
6308 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
6309 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6310
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 /* 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
6313
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6314 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
6315 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
6316 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
6317 --gerd. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6318
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6319 static void
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6320 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
6321 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
6322 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
6323 int width;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6324 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
6325 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6326 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
6327 struct glyph *cursor_glyph;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6328
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6329 /* 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
6330 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
6331 and mini-buffer. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6332 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
6333 if (cursor_glyph == NULL)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6334 return;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6335
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6336 /* 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
6337 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
6338 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
6339 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
6340 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6341 struct glyph_row *row;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6342 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
6343 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
6344 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6345 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6346 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6347 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
6348 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
6349 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
6350 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
6351 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
6352 XGCValues xgcv;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6353
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6354 /* 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
6355 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
6356 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
6357 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
6358 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
6359 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
6360 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
6361 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6362 xgcv.background = xgcv.foreground = f->output_data.mac->cursor_pixel;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6363
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6364 if (gc)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6365 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
6366 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6367 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6368 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
6369 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
6370 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6371
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6372 if (width < 0)
47138
4a0541418bc5 (x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents: 47030
diff changeset
6373 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
6374 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
6375
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6376 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
6377 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
6378
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6379 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
6380 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
6381 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
6382 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
6383 width, row->height);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6384 else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
6385 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
6386 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
6387 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
6388 row->height - width),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
6389 cursor_glyph->pixel_width,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
6390 width);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6391
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
6392 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
6393 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6394 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6395
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6396
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6397 /* 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
6398
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6399 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6400 mac_define_frame_cursor (f, cursor)
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6401 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6402 Cursor cursor;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6403 {
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
6404 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
6405
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
6406 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
6407 SetThemeCursor (cursor);
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6408 }
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6409
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6410
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6411 /* 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
6412
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6413 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6414 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
6415 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6416 int x, y, width, height;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6417 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
6418 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
6419 }
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6420
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6421
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6422 /* RIF: Draw cursor on window W. */
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6423
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6424 static void
50243
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6425 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
6426 struct window *w;
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6427 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
6428 int x, y;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6429 int cursor_type, cursor_width;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6430 int on_p, active_p;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6431 {
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6432 if (on_p)
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6433 {
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6434 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
6435 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
6436
53606
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
6437 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
6438 && 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
6439 {
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
6440 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
6441 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
6442 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6443 else
50243
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6444 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
6445 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6446 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
6447 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
6448 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6449
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6450 case FILLED_BOX_CURSOR:
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6451 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
6452 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6453
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6454 case BAR_CURSOR:
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6455 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
6456 break;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6457
47138
4a0541418bc5 (x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents: 47030
diff changeset
6458 case HBAR_CURSOR:
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6459 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
6460 break;
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 case NO_CURSOR:
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6463 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
6464 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6465
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6466 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6467 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6468 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6472
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6473 /* Icons. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6474
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6475 #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
6476 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6477 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
6478 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
6479 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
6480 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6481 HANDLE hicon;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6482
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6483 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
6484 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6485
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6486 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
6487 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
6488 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
6489 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
6490 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
6491 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
6492 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6493 LPCTSTR name;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6494
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6495 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
6496 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
6497 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
6498 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
6499 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
6500 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
6501 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
6502 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
6503 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
6504 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
6505 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
6506 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
6507 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6508 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6509
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6510 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
6511 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6512 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6513 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6514
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6515 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
6516 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6517
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6518 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
6519 (LPARAM) hicon);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6520
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6521 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6522 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6523 #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
6524
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6525 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6526 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
6527 ************************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6528
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6529 /* 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
6530 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
6531
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6532 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
6533 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
6534 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
6535 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
6536 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
6537 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
6538 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
6539 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
6540 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
6541 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
6542 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
6543 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
6544 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
6545
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6546 */
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6549 /* 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
6550
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6551 /* 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
6552 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
6553 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
6554 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
6555
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6556 Lisp_Object
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6557 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
6558 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
6559 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
6560 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6561 struct font_info *fontp
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6562 = FS_LOAD_FONT (f, fontname);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6563
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6564 if (!fontp)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6565 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6566
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6567 if (FRAME_FONT (f) == (XFontStruct *) (fontp->font))
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6568 /* This font is already set in frame F. There's nothing more to
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6569 do. */
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6570 return build_string (fontp->full_name);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6571
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6572 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
6573 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
6574 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
6575
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
6576 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
6577 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
6578 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
6579
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6580 compute_fringe_widths (f, 1);
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6581
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6582 /* 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
6583 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
6584 {
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6585 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
6586 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
6587 = (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
6588 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6589 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6590 {
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6591 int wid = FRAME_COLUMN_WIDTH (f);
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6592 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
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 /* 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
6596 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
6597 {
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
6598 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
6599 FRAME_FONT (f));
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
6600 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
6601 FRAME_FONT (f));
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
6602 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
6603 FRAME_FONT (f));
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6604
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6605 /* 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
6606 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
6607 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
6608 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
6609 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
6610 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6611
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6612 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
6613 }
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6614
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6615 /* Give frame F the fontset named FONTSETNAME as its default fontset,
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6616 and return the full name of that fontset. FONTSETNAME may be a
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6617 wildcard pattern; in that case, we choose some fontset that fits
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6618 the pattern. FONTSETNAME may be a font name for ASCII characters;
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6619 in that case, we create a fontset from that font name.
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6620
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6621 The return value shows which fontset we chose.
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6622 If FONTSETNAME specifies the default fontset, return Qt.
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6623 If an ASCII font in the specified fontset can't be loaded, return
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
6624 Qnil. */
44890
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 Lisp_Object
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6627 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
6628 struct frame *f;
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6629 Lisp_Object fontsetname;
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6630 {
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6631 int fontset = fs_query_fontset (fontsetname, 0);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6632 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
6633
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6634 if (fontset > 0 && FRAME_FONTSET(f) == fontset)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6635 /* 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
6636 to do. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6637 return fontset_name (fontset);
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6638 else if (fontset == 0)
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6639 /* The default fontset can't be the default font. */
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6640 return Qt;
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6641
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6642 if (fontset > 0)
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6643 result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6644 else
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6645 result = x_new_font (f, SDATA (fontsetname));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6646
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6647 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
6648 /* 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
6649 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6650
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6651 if (fontset < 0)
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6652 fontset = new_fontset_from_font_name (result);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6653
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6654 /* 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
6655 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
6656
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
6657 return fontset_name (fontset);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6658 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6659
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6660
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6661 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6662 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
6663 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6664 /* 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
6665
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6666 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
6667 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
6668 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
6669 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
6670 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
6671 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
6672
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6673 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6674
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6675
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6676 void
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6677 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
6678 struct frame *f;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6679 Rect *inner, *outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6680 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6681 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6682 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
6683 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
6684 #else /* not TARGET_API_MAC_CARBON */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6685 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
6686
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6687 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
6688 *inner = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6689 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
6690 *outer = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6691 DisposeRgn (region);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6692 #endif /* not TARGET_API_MAC_CARBON */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6693 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6694
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6695 static void
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6696 mac_handle_origin_change (f)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6697 struct frame *f;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6698 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6699 x_real_positions (f, &f->left_pos, &f->top_pos);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6700 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6701
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6702 static void
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6703 mac_handle_size_change (f, pixelwidth, pixelheight)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6704 struct frame *f;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6705 int pixelwidth, pixelheight;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6706 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6707 int cols, rows;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6708
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6709 cols = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pixelwidth);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6710 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, pixelheight);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6711
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6712 if (cols != FRAME_COLS (f)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6713 || rows != FRAME_LINES (f)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6714 || pixelwidth != FRAME_PIXEL_WIDTH (f)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6715 || pixelheight != FRAME_PIXEL_HEIGHT (f))
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6716 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6717 /* We pass 1 for DELAY since we can't run Lisp code inside of
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6718 a BLOCK_INPUT. */
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6719 change_frame_size (f, rows, cols, 0, 1, 0);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6720 FRAME_PIXEL_WIDTH (f) = pixelwidth;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6721 FRAME_PIXEL_HEIGHT (f) = pixelheight;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6722 SET_FRAME_GARBAGED (f);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6723
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6724 /* If cursor was outside the new size, mark it as off. */
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6725 mark_window_cursors_off (XWINDOW (f->root_window));
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6726
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6727 /* Clear out any recollection of where the mouse highlighting
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6728 was, since it might be in a place that's outside the new
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6729 frame size. Actually checking whether it is outside is a
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6730 pain in the neck, so don't try--just let the highlighting be
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6731 done afresh with new size. */
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6732 cancel_mouse_face (f);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6733
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6734 #if TARGET_API_MAC_CARBON
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6735 if (f->output_data.mac->hourglass_control)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6736 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6737 #if USE_CG_DRAWING
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6738 mac_prepare_for_quickdraw (f);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6739 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6740 MoveControl (f->output_data.mac->hourglass_control,
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6741 pixelwidth - HOURGLASS_WIDTH, 0);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6742 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6743 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6744 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6745 }
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6746
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
6747
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6748 /* 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
6749 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
6750
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6751 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6752 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
6753 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
6754 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6755 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
6756 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
6757 Rect inner, outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6758
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6759 /* 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
6760 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
6761 if (! ((flags & XNegative) || (flags & YNegative)))
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6762 return;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6763
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6764 /* 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
6765 the inner window, with respect to the outer window. */
77752
b5efedfac6cc (x_calc_absolute_position): Add BLOCK_INPUT around
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77705
diff changeset
6766 BLOCK_INPUT;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6767 mac_get_window_bounds (f, &inner, &outer);
77752
b5efedfac6cc (x_calc_absolute_position): Add BLOCK_INPUT around
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77705
diff changeset
6768 UNBLOCK_INPUT;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6769
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6770 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
6771 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
6772
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6773 /* 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
6774 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
6775 if (flags & XNegative)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6776 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
6777 - width_diff
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6778 - FRAME_PIXEL_WIDTH (f)
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6779 + f->left_pos);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6780
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6781 if (flags & YNegative)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6782 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
6783 - height_diff
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6784 - FRAME_PIXEL_HEIGHT (f)
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6785 + f->top_pos);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6786
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6787 /* 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
6788 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
6789 so the flags should correspond. */
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6790 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
6791 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6792
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6793 /* 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
6794 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
6795 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
6796 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
6797 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
6798
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6799 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6800 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
6801 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
6802 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
6803 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
6804 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6805 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
6806 {
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6807 f->top_pos = yoff;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6808 f->left_pos = xoff;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6809 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
6810 if (xoff < 0)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6811 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
6812 if (yoff < 0)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6813 f->size_hint_flags |= YNegative;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6814 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
6815 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6816 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
6817
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6818 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6819 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
6820
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6821 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6822 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
6823 /* 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
6824 position. */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6825 ConstrainWindowToScreen (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn,
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6826 kWindowConstrainMoveRegardlessOfFit
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6827 | kWindowConstrainAllowPartial, NULL, NULL);
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6828 if (!NILP (tip_frame) && XFRAME (tip_frame) == f)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6829 mac_handle_origin_change (f);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6830 #else
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6831 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6832 Rect inner, outer, screen_rect, dummy;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6833 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
6834
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6835 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
6836 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
6837 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
6838 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
6839 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
6840
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6841 /* 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
6842 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
6843 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
6844 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
6845 strict. */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6846 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
6847 outer = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6848 DisposeRgn (region);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6849 inner = outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6850 InsetRect (&inner, 8, 8);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6851 screen_rect = qd.screenBits.bounds;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6852 screen_rect.top += GetMBarHeight ();
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6853
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6854 if (!SectRect (&inner, &screen_rect, &dummy))
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6855 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6856 if (inner.right <= screen_rect.left)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6857 f->left_pos = screen_rect.left;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6858 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
6859 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
6860
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6861 if (inner.bottom <= screen_rect.top)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6862 f->top_pos = screen_rect.top;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6863 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
6864 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
6865
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6866 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
6867 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
6868 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6869 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6870 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6871
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6872 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6873 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6874
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6875 /* 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
6876 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
6877 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
6878 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
6879
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6880 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6881 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
6882 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
6883 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
6884 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
6885 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6886 int pixelwidth, pixelheight;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6887
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6888 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6889
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6890 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
6891 f->scroll_bar_actual_width
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6892 = 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
6893
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
6894 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
6895
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6896 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
6897 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
6898
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6899 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
6900 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
6901
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6902 SizeWindow (FRAME_MAC_WINDOW (f), pixelwidth, pixelheight, 0);
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6903
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
6904 #if TARGET_API_MAC_CARBON
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6905 if (!NILP (tip_frame) && f == XFRAME (tip_frame))
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6906 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6907 mac_handle_size_change (f, pixelwidth, pixelheight);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6908
76331
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6909 if (f->output_data.mac->internal_border_width
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6910 != FRAME_INTERNAL_BORDER_WIDTH (f))
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6911 {
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6912 mac_clear_window (f);
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6913 f->output_data.mac->internal_border_width
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6914 = FRAME_INTERNAL_BORDER_WIDTH (f);
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6915 }
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6916
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6917 SET_FRAME_GARBAGED (f);
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6918
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6919 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6920 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6921
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6922 /* Mouse warping. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6923
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6924 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
6925
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6926 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6927 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
6928 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
6929 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
6930 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6931 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
6932
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6933 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
6934 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
6935
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6936 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
6937 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
6938
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6939 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
6940 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
6941
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6942 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
6943 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6944
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6945 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6946 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
6947 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
6948 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
6949 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6950 #ifdef MAC_OSX
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
6951 pix_x += f->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
6952 pix_y += f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f);
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6953
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6954 BLOCK_INPUT;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
6955 CGWarpMouseCursorPosition (CGPointMake (pix_x, pix_y));
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6956 UNBLOCK_INPUT;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6957 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6958 #if 0 /* MAC_TODO: LMSetMouseLocation and CursorDeviceMoveTo are non-Carbon */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6959 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6960
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6961 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
6962 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
6963 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6964 #endif
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6965 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6966 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6967
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6968 /* 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
6969
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6970 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6971 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
6972 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
6973 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6974 #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
6975 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
6976 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6977 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6978 /* 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
6979 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
6980 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
6981 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
6982 RevertToPointerRoot, CurrentTime);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6983 #endif /* ! 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6984 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6985
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6986 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6987 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
6988 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
6989 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6990 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6991
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6992 /* 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
6993
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6994 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6995 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
6996 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
6997 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6998 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
6999 {
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
7000 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
7001 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
7002 UNBLOCK_INPUT;
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
7003 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7004 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7005
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7006 /* 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
7007
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7008 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7009 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
7010 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
7011 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7012 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
7013 {
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
7014 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
7015 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
7016 UNBLOCK_INPUT;
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
7017 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7018 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7019
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7020 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7021 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
7022 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
7023 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
7024 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7025 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
7026 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
7027 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7028 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
7029 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7030
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7031 /* 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
7032
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
7033 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
7034 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
7035 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
7036 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
7037 WindowRef wp = FRAME_MAC_WINDOW (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
7038 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
7039 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
7040
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7041 if (IsWindowVisible (wp))
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7042 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7043 if (IsWindowCollapsed (wp))
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7044 iconified = 1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7045 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7046 visible = 1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7047 }
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
7048
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7049 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
7050 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7051 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
7052 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7053 /* 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
7054 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
7055 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
7056 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
7057 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
7058
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7059 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
7060 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
7061 XSETFRAME (buf.frame_or_window, f);
71135
a40a279936e8 (mac_handle_visibility_change): Set buf.arg to Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71065
diff changeset
7062 buf.arg = Qnil;
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
7063 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
7064 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7065 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
7066 /* 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
7067 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
7068 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
7069 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7070 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
7071 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
7072 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7073 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
7074 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
7075 XSETFRAME (buf.frame_or_window, f);
71135
a40a279936e8 (mac_handle_visibility_change): Set buf.arg to Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71065
diff changeset
7076 buf.arg = Qnil;
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
7077 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
7078 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7079
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7080 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
7081 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
7082 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7083
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7084 /* 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
7085 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
7086 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
7087 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
7088 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
7089 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
7090
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7091 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7092 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
7093 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
7094 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7095 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7096
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7097 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
7098 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7099 /* 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
7100 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
7101 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
7102 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
7103 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
7104 && ! f->output_data.mac->asked_for_visible)
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
7105 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
7106
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7107 f->output_data.mac->asked_for_visible = 1;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7108
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
7109 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
7110 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
7111 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7112
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7113 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
7114
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7115 /* 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
7116 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
7117 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
7118 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7119 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
7120 int count;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7121
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7122 /* 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
7123 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7124
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7125 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
7126
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7127 /* 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
7128 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
7129 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
7130 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
7131 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
7132 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7133 /* 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
7134 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
7135
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7136 /* 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
7137 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
7138 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
7139 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
7140 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
7141 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
7142 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
7143 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7144 /* 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
7145 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
7146 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
7147 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
7148 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
7149 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
7150 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
7151 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
7152 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7153
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7154 /* 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
7155 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
7156 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7157 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7158 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7159
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7160 /* 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
7161
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7162 /* 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
7163
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7164 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7165 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
7166 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
7167 {
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
7168 /* 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
7169 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
7170 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
7171 #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
7172 /* 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
7173 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
7174 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
7175 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7176
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7177 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7178
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
7179 #if !TARGET_API_MAC_CARBON
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
7180 /* 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
7181 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
7182 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
7183 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
7184 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
7185 x_wm_set_size_hint (f, (long) 0, 1);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
7186 #endif
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
7187
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7188 HideWindow (FRAME_MAC_WINDOW (f));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7189
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7190 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
7191
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
7192 #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
7193 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
7194 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7195 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7196
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7197 /* 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
7198
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7199 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7200 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
7201 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
7202 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
7203 OSStatus err;
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
7204
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7205 /* 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
7206 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
7207 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
7208 #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
7209 /* Don't keep the highlight on an invisible frame. */
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
7210 if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
7211 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
7212 #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
7213
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7214 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
7215 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7216
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7217 BLOCK_INPUT;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
7218
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
7219 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
7220
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7221 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
7222 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
7223
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7224 err = CollapseWindow (FRAME_MAC_WINDOW (f), true);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7225
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7226 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
7227
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7228 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
7229 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
7230
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
7231 #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
7232 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
7233 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7234 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7235
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7236
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7237 /* 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
7238
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7239 void
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7240 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
7241 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
7242 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7243 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
7244 WindowRef 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
7245
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7246 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7247
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
7248 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
7249 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
7250
75200
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
7251 #if USE_CG_DRAWING
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
7252 mac_prepare_for_quickdraw (f);
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
7253 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
7254 DisposeWindow (wp);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
7255 if (wp == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
7256 /* Neither WaitNextEvent nor ReceiveNextEvent receives `window
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
7257 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
7258 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
7259
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7260 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
7261
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7262 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
7263 free_frame_faces (f);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7264
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7265 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
7266
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7267 if (FRAME_SIZE_HINTS (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7268 xfree (FRAME_SIZE_HINTS (f));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7269
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7270 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
7271 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
7272
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7273 if (f == dpyinfo->x_focus_frame)
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
7274 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
7275 dpyinfo->x_focus_frame = 0;
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
7276 #if USE_MAC_FONT_PANEL
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
7277 mac_set_font_info_for_selection (NULL, DEFAULT_FACE_ID, 0);
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
7278 #endif
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
7279 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7280 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
7281 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
7282 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
7283 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
7284
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7285 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
7286 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7287 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
7288 = 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
7289 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
7290 = 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
7291 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
7292 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
7293 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
7294 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7295
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7296 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7297 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7298
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7299
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7300 /* 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
7301
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7302 void
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7303 x_destroy_window (f)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7304 struct frame *f;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7305 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7306 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
7307
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7308 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
7309
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7310 dpyinfo->reference_count--;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7311 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7312
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7313
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7314 /* 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
7315
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7316 /* 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
7317 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
7318 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
7319 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
7320 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
7321 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7322 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
7323 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
7324 long flags;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7325 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
7326 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7327 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
7328 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
7329 XSizeHints *size_hints;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7330
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7331 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
7332 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
7333 width_inc = FRAME_COLUMN_WIDTH (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7334 height_inc = FRAME_LINE_HEIGHT (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7335
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7336 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
7337
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7338 size_hints = FRAME_SIZE_HINTS (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7339 if (size_hints == NULL)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7340 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7341 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
7342 bzero (size_hints, sizeof (XSizeHints));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7343 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7344
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7345 size_hints->flags |= PResizeInc | PMinSize | PBaseSize ;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7346 size_hints->width_inc = width_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7347 size_hints->height_inc = height_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7348 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
7349 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
7350 size_hints->base_width = base_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7351 size_hints->base_height = base_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7352
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7353 if (flags)
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7354 size_hints->flags = flags;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7355 else if (user_position)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7356 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7357 size_hints->flags &= ~ PPosition;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7358 size_hints->flags |= USPosition;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7359 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7360 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7361
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7362 #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
7363 /* 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
7364
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7365 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7366 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
7367 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
7368 int state;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7369 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7370 #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
7371 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
7372
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7373 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
7374 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
7375 #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
7376 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
7377
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7378 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
7379 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
7380
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7381 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
7382 #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
7383 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7384
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7385 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7386 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
7387 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
7388 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
7389 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7390 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
7391
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7392 #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
7393 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
7394 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7395
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7396 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
7397 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7398 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
7399 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
7400 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7401 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7402 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7403 /* 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
7404 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
7405 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
7406 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
7407 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
7408 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
7409 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
7410 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7411 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
7412 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7413 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7414 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7415 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7416
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7417 #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
7418
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7419 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7420 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
7421 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
7422 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
7423 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7424
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7425 #else /* not USE_X_TOOLKIT */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7426
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7427 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
7428 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
7429
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7430 #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
7431 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7432
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7433 #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
7434
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7435 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7436 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
7437 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
7438 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
7439 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7440 #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
7441 #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
7442 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
7443 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7444 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
7445 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7446
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7447 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
7448 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
7449 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
7450
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7451 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
7452 #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
7453 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7454
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7455
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7456 /***********************************************************************
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7457 XLFD Pattern Match
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7458 ***********************************************************************/
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7459
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7460 /* 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
7461 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
7462 struct xlfdpat_block
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7463 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7464 /* 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
7465 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
7466 int len;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7467
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7468 /* 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
7469 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
7470 sentinel. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7471 unsigned char *pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7472
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7473 /* 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
7474 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
7475
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7476 /* 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
7477 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
7478 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
7479 int skip[256];
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7480
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7481 /* 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
7482 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
7483 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
7484 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
7485 };
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7486
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7487 struct xlfdpat
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7488 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7489 /* 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
7490 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
7491 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
7492 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
7493 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
7494 unsigned char *buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7495
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7496 /* 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
7497 normalized pattern string. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7498 int nchars;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7499
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7500 /* 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
7501 int trailing_anychars;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7502
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7503 /* 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
7504 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
7505 int nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7506 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
7507 };
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7508
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7509 static void
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7510 xlfdpat_destroy (pat)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7511 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7512 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7513 if (pat)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7514 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7515 if (pat->buf)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7516 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7517 if (pat->blocks)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7518 xfree (pat->blocks);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7519 xfree (pat->buf);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7520 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7521 xfree (pat);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7522 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7523 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7524
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7525 static struct xlfdpat *
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7526 xlfdpat_create (pattern)
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7527 const char *pattern;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7528 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7529 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7530 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
7531 unsigned char last_char, *p, *q, *anychar_head;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7532 const unsigned char *ptr;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7533 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
7534
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7535 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
7536 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
7537
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7538 /* 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
7539 nblocks = 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7540 anychar_head = NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7541 q = pat->buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7542 last_char = '\0';
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7543 for (ptr = pattern; *ptr; ptr++)
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7544 {
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7545 unsigned char c = *ptr;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7546
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7547 if (c == '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7548 if (last_char == '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7549 /* ...a** -> ...a* */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7550 continue;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7551 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7552 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7553 if (last_char == '?')
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7554 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7555 if (anychar_head > pat->buf && *(anychar_head - 1) == '*')
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7556 /* ...*??* -> ...*?? */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7557 continue;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7558 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7559 /* ...a??* -> ...a*?? */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7560 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7561 *anychar_head++ = '*';
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7562 c = '?';
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7563 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7564 }
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7565 nblocks++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7566 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7567 else if (c == '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7568 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7569 if (last_char != '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7570 anychar_head = q;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7571 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7572 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7573 /* 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
7574 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
7575 if (isascii (c))
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7576 c = tolower (c);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7577
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7578 *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
7579 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7580 *q = '\0';
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7581 nblocks++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7582 pat->nblocks = nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7583 if (last_char != '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7584 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
7585 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7586 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7587 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
7588 q = anychar_head;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7589 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7590 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
7591
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7592 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
7593 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7594 /* 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
7595 pat->blocks = NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7596 return pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7597 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7598
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7599 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
7600
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7601 /* 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
7602 p = pat->buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7603 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
7604 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7605 blk->pattern = p;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7606 while (*p != '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7607 p++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7608 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
7609 p++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7610 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7611 blk->pattern = p;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7612 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
7613
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7614 /* 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
7615 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
7616 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
7617 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7618 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
7619 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
7620
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7621 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
7622 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
7623 break;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7624
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7625 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
7626 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
7627
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7628 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
7629 while (--skip > 0)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7630 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
7631
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7632 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
7633 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7634
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7635 return pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7636 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7637
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7638 static INLINE int
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7639 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
7640 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7641 {
65643
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7642 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
7643 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7644
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7645 /* 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
7646 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
7647 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
7648
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7649 static const char *
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7650 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
7651 struct xlfdpat_block *blk;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7652 const unsigned char *string;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7653 int start_max;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7654 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7655 int start, infinity;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7656 unsigned char *p;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7657 const unsigned char *s;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7658
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7659 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
7660 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
7661 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
7662
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7663 /* 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
7664 use of `infinity'. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7665 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
7666 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
7667
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7668 start = 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7669 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7670 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7671 /* 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
7672 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
7673 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7674 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7675 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
7676 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7677 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
7678
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7679 if (start < infinity)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7680 /* 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
7681 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7682
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7683 /* 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
7684 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
7685 start -= infinity;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7686
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7687 /* 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
7688 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
7689 p = blk->pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7690 s = string + start;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7691 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7692 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7693 while (*p++ == *s++)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7694 ;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7695 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7696 while (*(p - 1) == '?');
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7697
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7698 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
7699 /* Matched. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7700 return string + start;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7701
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7702 /* Didn't match. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7703 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
7704 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7705 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
7706
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7707 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7708 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7709
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7710 #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
7711 ((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
7712 : 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
7713
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7714 /* Check if XLFD pattern PAT, which is generated by `xlfdpat_create',
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7715 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
7716
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7717 static int
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7718 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
7719 struct xlfdpat *pat;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7720 const unsigned char *string;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7721 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7722 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
7723 struct xlfdpat_block *blk;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7724 const unsigned char *s;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7725
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7726 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
7727
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7728 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
7729 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
7730
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7731 /* 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
7732 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
7733 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
7734 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
7735 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7736
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7737 /* 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
7738 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
7739
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7740 /* 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
7741 of the string. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7742 nblocks = pat->nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7743 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
7744 if (nblocks == 1)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7745 /* 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
7746 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
7747 && (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
7748 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
7749 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
7750 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7751
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7752 /* 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
7753 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
7754 blk = pat->blocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7755 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
7756 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7757 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
7758 if (s == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7759 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7760 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
7761 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7762
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7763 /* 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
7764 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
7765 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
7766 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7767 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
7768 if (s == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7769 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7770 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
7771 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
7772 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7773
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7774 return 1;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7775 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7776
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7777
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7778 /***********************************************************************
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7779 Fonts
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 /* 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
7783
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7784 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
7785 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
7786 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
7787 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
7788 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7789 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
7790 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7791
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7792 /* 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
7793 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
7794 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
7795 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
7796
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7797 /* 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
7798 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
7799 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
7800 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
7801 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
7802 #if USE_ATSUI
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7803 /* 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
7804 static Lisp_Object atsu_font_id_hash;
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7805 /* Alist linking Font Manager style to face attributes. */
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7806 static Lisp_Object fm_style_face_attributes_alist;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
7807 extern Lisp_Object QCfamily, QCweight, QCslant, Qnormal, Qbold, Qitalic;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7808 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7809
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7810 /* 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
7811 coding system. */
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7812 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
7813
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7814 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
7815 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
7816 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7817 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
7818
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7819 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
7820 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7821 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
7822 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
7823 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
7824
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7825 if (!(CONSP (charset_info)
76746
d3898ad6d0d5 (create_text_encoding_info_alist): Move assignments
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76535
diff changeset
7826 && (charset = XCAR (charset_info),
d3898ad6d0d5 (create_text_encoding_info_alist): Move assignments
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76535
diff changeset
7827 STRINGP (charset))
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7828 && CONSP (XCDR (charset_info))
76746
d3898ad6d0d5 (create_text_encoding_info_alist): Move assignments
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76535
diff changeset
7829 && (text_encoding = XCAR (XCDR (charset_info)),
d3898ad6d0d5 (create_text_encoding_info_alist): Move assignments
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76535
diff changeset
7830 INTEGERP (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
7831 && CONSP (XCDR (XCDR (charset_info)))
76746
d3898ad6d0d5 (create_text_encoding_info_alist): Move assignments
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76535
diff changeset
7832 && (coding_system = XCAR (XCDR (XCDR (charset_info))),
d3898ad6d0d5 (create_text_encoding_info_alist): Move assignments
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76535
diff changeset
7833 SYMBOLP (coding_system))))
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7834 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7835
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7836 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
7837 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
7838 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
7839 result);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7840 else
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7841 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
7842 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
7843 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
7844 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7845
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7846 return result;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7847 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7848
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7849
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7850 static void
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7851 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
7852 char *name;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7853 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
7854 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
7855 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7856 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
7857 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
7858
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7859 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
7860 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7861 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
7862 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
7863 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7864
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7865 if (*p)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7866 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7867 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
7868 coding.src_multibyte = 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7869 coding.dst_multibyte = 1;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7870 coding.mode |= CODING_MODE_LAST_BLOCK;
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7871 coding.dst_bytes = size;
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7872 coding.destination = (unsigned char *) alloca (coding.dst_bytes);
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7873
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7874 decode_coding_c_string (&coding, name, strlen (name), Qnil);
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7875 bcopy (coding.destination, name, min (coding.produced, size));
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7876 name[min (coding.produced, size)] = '\0';
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7877 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7878 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7879
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7880 /* 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
7881 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
7882 "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
7883 p = strchr (name, '-');
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7884 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
7885 *p = '_';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7886
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7887 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
7888 /* 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
7889 for some locales. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7890 if (isascii (*p))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7891 *p = tolower (*p);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7892 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7895 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
7896 mac_to_x_fontname (name, size, style, charset)
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7897 const char *name;
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7898 int size;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7899 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
7900 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
7901 {
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7902 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
7903 Str255 family;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7904 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
7905 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
7906
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7907 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
7908 charset = cs;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7909 else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7910 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7911 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
7912 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
7913 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7914
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7915 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
7916 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
7917 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
7918
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7919 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
7920 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
7921 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
7922 /* 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
7923 for some locales. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7924 if (isascii (*p))
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7925 *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
7926 return result;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7927 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7928
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7929
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7930 /* 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
7931 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
7932 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
7933 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
7934 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
7935 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
7936 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
7937 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
7938 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
7939
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7940 const int kDefaultFontSize = 12;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7941
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7942 static int
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7943 parse_x_font_name (xf, family, size, style, charset)
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7944 const char *xf;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7945 char *family;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7946 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
7947 Style *style;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7948 char *charset;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7949 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7950 Str31 foundry, weight;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7951 int point_size, avgwidth;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7952 char slant[2], *p;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7953
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7954 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
7955 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
7956 &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
7957 && 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
7958 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
7959 &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
7960 return 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7961
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7962 if (*size == 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7963 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7964 if (point_size > 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7965 *size = point_size / 10;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7966 else if (avgwidth > 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7967 *size = avgwidth / 10;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7968 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7969 if (*size == 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7970 *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
7971
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7972 *style = normal;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7973 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
7974 *style |= bold;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7975 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
7976 *style |= italic;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7977
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7978 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
7979 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7980 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
7981
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7982 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
7983 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7984 /* 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
7985 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
7986 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
7987 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
7988 family[foundry_len] = '-';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7989 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
7990 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
7991 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7992 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7993 return 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7994 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7995
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7996 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
7997 /* 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
7998 for some locales. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7999 if (isascii (*p))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8000 *p = tolower (*p);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8001
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8002 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
8003 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8004
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8005
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8006 static void
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8007 add_font_name_table_entry (char *font_name)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8008 {
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8009 if (font_name_table_size == 0)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8010 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8011 font_name_table_size = 256;
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8012 font_name_table = (char **)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8013 xmalloc (font_name_table_size * sizeof (char *));
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8014 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8015 else if (font_name_count + 1 >= font_name_table_size)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8016 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8017 font_name_table_size *= 2;
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8018 font_name_table = (char **)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8019 xrealloc (font_name_table,
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8020 font_name_table_size * sizeof (char *));
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8021 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8022
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8023 font_name_table[font_name_count++] = font_name;
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8024 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8025
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8026 static void
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8027 add_mac_font_name (name, size, style, charset)
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8028 const char *name;
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8029 int size;
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8030 Style style;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8031 const char *charset;
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8032 {
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8033 if (size > 0)
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8034 add_font_name_table_entry (mac_to_x_fontname (name, size, style, charset));
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8035 else
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8036 {
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8037 add_font_name_table_entry (mac_to_x_fontname (name, 0, style, charset));
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8038 add_font_name_table_entry (mac_to_x_fontname (name, 0, italic, charset));
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8039 add_font_name_table_entry (mac_to_x_fontname (name, 0, bold, charset));
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8040 add_font_name_table_entry (mac_to_x_fontname (name, 0, italic | bold,
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8041 charset));
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8042 }
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8043 }
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8044
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8045 #if USE_ATSUI
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8046 static FMFontStyle
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8047 fm_get_style_from_font (font)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8048 FMFont font;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8049 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8050 OSStatus err;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8051 FMFontStyle style = normal;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8052 ByteCount len;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8053 UInt16 mac_style;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8054 FMFontFamily font_family;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8055 #define FONT_HEADER_MAC_STYLE_OFFSET (4*4 + 2*2 + 8*2 + 2*4)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8056
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8057 /* FMGetFontFamilyInstanceFromFont returns `normal' as the style of
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8058 some font (e.g., Optima) even if it is `bold'. */
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8059 err = FMGetFontTable (font, 'head', FONT_HEADER_MAC_STYLE_OFFSET,
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8060 sizeof (mac_style), &mac_style, &len);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8061 if (err == noErr
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8062 && len >= FONT_HEADER_MAC_STYLE_OFFSET + sizeof (mac_style))
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8063 style = EndianU16_BtoN (mac_style);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8064 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8065 FMGetFontFamilyInstanceFromFont (font, &font_family, &style);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8066
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8067 return style;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8068 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8069
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8070 static ATSUFontID
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8071 atsu_find_font_from_family_name (family)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8072 const char *family;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8073 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8074 struct Lisp_Hash_Table *h = XHASH_TABLE (atsu_font_id_hash);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8075 unsigned hash_code;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8076 int i;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8077 Lisp_Object rest, best;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8078 FMFontStyle min_style, style;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8079
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8080 i = hash_lookup (h, make_unibyte_string (family, strlen (family)),
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8081 &hash_code);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8082 if (i < 0)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8083 return kATSUInvalidFontID;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8084
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8085 rest = HASH_VALUE (h, i);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8086 if (INTEGERP (rest) || (CONSP (rest) && INTEGERP (XCDR (rest))))
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8087 return cons_to_long (rest);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8088
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8089 rest = Fnreverse (rest);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8090 best = XCAR (rest);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8091 rest = XCDR (rest);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8092 if (!NILP (rest)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8093 && (min_style = fm_get_style_from_font (cons_to_long (best))) != normal)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8094 do
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8095 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8096 style = fm_get_style_from_font (cons_to_long (XCAR (rest)));
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8097 if (style < min_style)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8098 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8099 best = XCAR (rest);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8100 if (style == normal)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8101 break;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8102 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8103 min_style = style;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8104 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8105 rest = XCDR (rest);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8106 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8107 while (!NILP (rest));
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8108
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8109 HASH_VALUE (h, i) = best;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8110 return cons_to_long (best);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8111 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8112
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8113 static Lisp_Object
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8114 fm_style_to_face_attributes (fm_style)
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8115 FMFontStyle fm_style;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8116 {
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8117 Lisp_Object tem;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8118
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8119 fm_style &= (bold | italic);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8120 tem = assq_no_quit (make_number (fm_style),
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8121 fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8122 if (!NILP (tem))
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8123 return XCDR (tem);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8124
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8125 tem = list4 (QCweight, fm_style & bold ? Qbold : Qnormal,
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8126 QCslant, fm_style & italic ? Qitalic : Qnormal);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8127 fm_style_face_attributes_alist =
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8128 Fcons (Fcons (make_number (fm_style), tem),
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8129 fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8130
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8131 return tem;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8132 }
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8133
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8134 static Lisp_Object
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8135 atsu_find_font_family_name (font_id)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8136 ATSUFontID font_id;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8137 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8138 OSStatus err;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8139 ByteCount len;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8140 Lisp_Object family = Qnil;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8141
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8142 err = ATSUFindFontName (font_id, kFontFamilyName,
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8143 kFontMacintoshPlatform, kFontNoScript,
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8144 kFontNoLanguage, 0, NULL, &len, NULL);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8145 if (err == noErr)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8146 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8147 family = make_uninit_string (len);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8148 err = ATSUFindFontName (font_id, kFontFamilyName,
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8149 kFontMacintoshPlatform, kFontNoScript,
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8150 kFontNoLanguage, len, SDATA (family),
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8151 NULL, NULL);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8152 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8153 if (err == noErr)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8154 decode_mac_font_name (SDATA (family), len + 1, Qnil);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8155
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8156 return family;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8157 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8158
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8159 Lisp_Object
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8160 mac_atsu_font_face_attributes (font_id)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8161 ATSUFontID font_id;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8162 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8163 Lisp_Object family, style_attrs;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8164
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8165 family = atsu_find_font_family_name (font_id);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8166 if (NILP (family))
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8167 return Qnil;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8168 style_attrs = fm_style_to_face_attributes (fm_get_style_from_font (font_id));
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8169 return Fcons (QCfamily, Fcons (family, style_attrs));
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8170 }
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8171 #endif
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8172
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8173 /* 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
8174 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
8175 Manager need not be accessed every time this information is
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8176 needed. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8177
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8178 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8179 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
8180 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8181 #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
8182 FMFontFamilyIterator ffi;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8183 FMFontFamilyInstanceIterator ffii;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8184 FMFontFamily ff;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8185 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
8186 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
8187
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8188 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
8189
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8190 #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
8191 #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
8192 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
8193 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8194 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
8195 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
8196 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8197 OSStatus err;
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8198 struct Lisp_Hash_Table *h;
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8199 unsigned hash_code;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8200 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
8201 ATSUFontID *font_ids = NULL;
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8202 Lisp_Object prev_family = Qnil;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8203 int j;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8204
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8205 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
8206 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
8207 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
8208 make_float (DEFAULT_REHASH_THRESHOLD),
77907
c53c9b6a0e5b (mac_create_bitmap_from_bitmap_data)
Chong Yidong <cyd@stupidchicken.com>
parents: 77795
diff changeset
8209 Qnil, Qnil, Qnil);
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8210 h = XHASH_TABLE (atsu_font_id_hash);
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8211
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8212 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
8213 if (err == noErr)
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8214 {
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8215 font_ids = xmalloc (sizeof (ATSUFontID) * nfonts);
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8216 err = ATSUGetFontIDs (font_ids, nfonts, NULL);
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8217 }
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8218 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
8219 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
8220 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8221 Lisp_Object family;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8222
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8223 family = atsu_find_font_family_name (font_ids[i]);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8224 if (NILP (family) || SREF (family, 0) == '.')
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8225 continue;
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8226 if (!NILP (Fequal (prev_family, family)))
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8227 family = prev_family;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8228 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8229 j = hash_lookup (h, family, &hash_code);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8230 if (j < 0)
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8231 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8232 add_mac_font_name (SDATA (family), 0, normal, "iso10646-1");
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8233 j = hash_put (h, family, Fcons (long_to_cons (font_ids[i]),
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8234 Qnil), hash_code);
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8235 }
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8236 else if (EQ (prev_family, family))
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8237 HASH_VALUE (h, j) = Fcons (long_to_cons (font_ids[i]),
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8238 HASH_VALUE (h, j));
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8239 prev_family = family;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8240 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8241 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
8242 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
8243 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8244 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8245
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8246 /* 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
8247 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
8248 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
8249 return;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8250 /* 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
8251 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
8252 != noErr)
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8253 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8254 FMDisposeFontFamilyInstanceIterator (&ffii);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8255 return;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8256 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8257
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8258 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
8259
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8260 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
8261 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8262 Str255 name;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8263 FMFont font;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8264 FMFontStyle style;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8265 FMFontSize size;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8266 TextEncoding encoding;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8267 TextEncodingBase sc;
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8268 Lisp_Object text_encoding_info, family;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8269
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8270 if (FMGetFontFamilyName (ff, name) != noErr)
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8271 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8272 p2cstr (name);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8273 if (*name == '.')
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8274 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8275
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8276 if (FMGetFontFamilyTextEncoding (ff, &encoding) != noErr)
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8277 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8278 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
8279 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
8280 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
8281 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
8282 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
8283 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
8284 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
8285 XCAR (XCDR (text_encoding_info)));
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8286 family = build_string (name);
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8287 if (!NILP (Fassoc (family, fm_font_family_alist)))
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8288 continue;
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8289 fm_font_family_alist = Fcons (Fcons (family, make_number (ff)),
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8290 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
8291
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8292 /* 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
8293 if (FMResetFontFamilyInstanceIterator (ff, &ffii) != noErr)
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8294 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8295
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8296 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
8297 == noErr)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8298 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8299 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
8300
65643
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
8301 if (size > 0 || style == normal)
85330
0bc184c59770 * xfns.c (Fx_create_frame, Fx_display_list):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85257
diff changeset
8302 for (; CONSP (rest); rest = XCDR (rest))
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8303 add_mac_font_name (name, size, style, SDATA (XCAR (rest)));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8304 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8305 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8306
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8307 UNGCPRO;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8308
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8309 /* 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
8310 FMDisposeFontFamilyIterator (&ffi);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8311 FMDisposeFontFamilyInstanceIterator (&ffii);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8312 #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
8313 GrafPtr port;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8314 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
8315 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
8316 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
8317 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
8318 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
8319 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
8320 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
8321 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
8322 struct AsscEntry *assc_entry;
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8323 Lisp_Object text_encoding_info_alist, text_encoding_info, family;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8324 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
8325
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8326 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
8327 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
8328
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8329 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
8330
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8331 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
8332
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8333 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
8334 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8335 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
8336 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
8337 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8338
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8339 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
8340 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
8341 p2cstr (name);
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8342 if (fontnum == 0 || *name == '.')
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8343 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8344
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8345 TextFont (fontnum);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8346 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
8347 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
8348 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
8349 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
8350 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
8351 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
8352 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
8353 XCAR (XCDR (text_encoding_info)));
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8354 family = build_string (name);
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8355 if (!NILP (Fassoc (family, fm_font_family_alist)))
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8356 continue;
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8357 fm_font_family_alist = Fcons (Fcons (family, make_number (fontnum)),
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8358 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
8359 do
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8360 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8361 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
8362
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8363 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
8364 >= 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
8365 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8366 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
8367 + 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
8368 assc_entry
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8369 = (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
8370 + 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
8371 + 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
8372
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8373 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
8374 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8375 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
8376
85330
0bc184c59770 * xfns.c (Fx_create_frame, Fx_display_list):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85257
diff changeset
8377 for (; CONSP (rest); rest = XCDR (rest))
70149
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8378 add_mac_font_name (name, assc_entry->fontSize,
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8379 assc_entry->fontStyle,
6188dfce9d77 (x_per_char_metric): Return NULL if glyph width is 0.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70071
diff changeset
8380 SDATA (XCAR (rest)));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8381 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8382 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8383
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8384 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
8385 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
8386 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
8387 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
8388 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8389 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
8390 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8391
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8392 UNGCPRO;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8393
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8394 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
8395 #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
8396 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8397
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8398
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8399 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8400 mac_clear_font_name_table ()
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8401 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8402 int i;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8403
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8404 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
8405 xfree (font_name_table[i]);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8406 xfree (font_name_table);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8407 font_name_table = NULL;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8408 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
8409 fm_font_family_alist = Qnil;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8410 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8411
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8412
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8413 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
8414 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8415 XLFD_SCL_PIXEL_SIZE,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8416 XLFD_SCL_POINT_SIZE,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8417 XLFD_SCL_AVGWIDTH,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8418 XLFD_SCL_LAST
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8419 };
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8420
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8421 static const int xlfd_scalable_fields[] =
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8422 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8423 6, /* PIXEL_SIZE */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8424 7, /* POINT_SIZE */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8425 11, /* AVGWIDTH */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8426 -1
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8427 };
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8428
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8429 static Lisp_Object
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8430 mac_do_list_fonts (pattern, maxnames)
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8431 const char *pattern;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8432 int maxnames;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8433 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8434 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
8435 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
8436 struct xlfdpat *pat;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8437 char *scaled;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8438 const char *ptr;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8439 int scl_val[XLFD_SCL_LAST], *val;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8440 const int *field;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8441 int exact;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8442
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8443 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
8444 init_font_name_table ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8445
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8446 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
8447 scl_val[i] = -1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8448
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8449 /* 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
8450 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
8451 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
8452 ptr = pattern;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8453 i = 0;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8454 field = xlfd_scalable_fields;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8455 val = scl_val;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8456 if (*ptr == '-')
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8457 do
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8458 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8459 ptr++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8460 if (i == *field)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8461 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8462 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
8463 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8464 *val = *ptr++ - '0';
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8465 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
8466 *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
8467 if (*ptr != '-')
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8468 *val = -1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8469 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8470 field++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8471 val++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8472 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8473 ptr = strchr (ptr, '-');
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8474 i++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8475 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8476 while (ptr && i < 14);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8477
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8478 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
8479 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8480 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
8481 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
8482 (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
8483 : (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
8484 : -1));
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8485 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
8486 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
8487 (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
8488 : (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
8489 : -1));
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8490 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
8491 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
8492 (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
8493 : (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
8494 : -1));
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8495 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8496 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8497 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
8498
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8499 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
8500 if (pat == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8501 return Qnil;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8502
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8503 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
8504
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8505 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
8506 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8507 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
8508 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8509 font_list = Fcons (build_string (font_name_table[i]), font_list);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
8510 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
8511 break;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8512 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8513 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
8514 && (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
8515 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8516 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
8517
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
8518 scaled = xmalloc (strlen (font_name_table[i]) + 20 + 1);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8519 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
8520 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
8521 "-%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
8522 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
8523 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
8524 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
8525 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
8526
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8527 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
8528 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8529 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
8530 xfree (scaled);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
8531 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
8532 break;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8533 }
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8534 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8535 xfree (scaled);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8536 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8537 }
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
8538
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8539 xlfdpat_destroy (pat);
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
8540
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8541 return font_list;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8542 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8543
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8544 /* 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
8545
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8546 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
8547 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
8548 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
8549
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8550 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
8551 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
8552 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
8553 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
8554 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
8555 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8556 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
8557 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
8558 = 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
8559
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8560 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
8561
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8562 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
8563 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
8564 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
8565
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8566 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
8567 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8568 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
8569
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8570 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
8571 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8572
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
8573 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
8574 key = Fcons (pattern, make_number (maxnames));
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
8575
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8576 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
8577 if (!NILP (list))
46169
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
8578 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8579 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
8580 /* 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
8581 goto label_cached;
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
8582 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8583
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8584 BLOCK_INPUT;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8585 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
8586 UNBLOCK_INPUT;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8587
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8588 /* 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
8589
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8590 /* 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
8591 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
8592 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
8593 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
8594
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8595 label_cached:
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8596 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
8597 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8598
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8599 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
8600 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8601
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8602
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8603 #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
8604
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8605 /* 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
8606 font table. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8607
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8608 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8609 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
8610 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
8611 XFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8612 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8613 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8614 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
8615
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8616 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
8617
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8618 for (i = 0; i < dpyinfo->n_fonts; i++)
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8619 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
8620 && 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
8621 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8622
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8623 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
8624 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8625
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8626 #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
8627
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8628 /* 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
8629 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
8630 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
8631 "-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
8632 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
8633
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8634 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
8635 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
8636 MacFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8637 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
8638 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8639 *h = FONT_HEIGHT (font);
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8640 *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
8641 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8642
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8643
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8644 /* 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
8645 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
8646 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
8647 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
8648 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
8649
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
8650 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
8651 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
8652 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
8653 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8654 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8655 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
8656 MacFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8657 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
8658 int old_height = dpyinfo->smallest_font_height;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8659
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8660 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
8661 dpyinfo->smallest_char_width = 100000;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8662
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8663 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
8664 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
8665 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8666 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
8667 int w, h;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8668
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8669 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
8670 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
8671 x_font_min_bounds (font, &w, &h);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8672
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8673 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
8674 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
8675 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8676
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8677 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
8678 && 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
8679
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8680 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
8681 || 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
8682 || 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
8683 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8684
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8685
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8686 /* 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
8687 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
8688
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8689 static int
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8690 is_fully_specified_xlfd (p)
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8691 const 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
8692 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8693 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8694 char *q;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8695
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8696 if (*p != '-')
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8697 return 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8698
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8699 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
8700 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8701 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
8702 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
8703 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8704 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
8705 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8706 p = q;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8707 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8708
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8709 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
8710 return 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8711
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8712 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
8713 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8714
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8715 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8716 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8717
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8718
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
8719 /* mac_load_query_font creates and returns an internal representation
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
8720 for a font in a MacFontStruct struct. There is really no concept
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8721 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
8722 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
8723 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
8724
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8725 static MacFontStruct *
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
8726 mac_load_query_font (f, fontname)
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
8727 struct frame *f;
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
8728 char *fontname;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8729 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8730 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
8731 char *name;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8732 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
8733 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
8734 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
8735 #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
8736 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
8737 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
8738 #endif
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8739 Style fontface;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8740 #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
8741 TextEncoding encoding;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8742 int scriptcode;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8743 #else
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8744 short scriptcode;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8745 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8746 MacFontStruct *font;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8747 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
8748
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8749 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
8750 name = fontname;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8751 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8752 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8753 Lisp_Object matched_fonts;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8754
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8755 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
8756 if (NILP (matched_fonts))
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8757 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8758 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
8759 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8760
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8761 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
8762 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8763
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8764 #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
8765 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
8766 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8767 OSStatus err;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8768 static const ATSUAttributeTag tags[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8769 {kATSUFontTag, kATSUSizeTag,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8770 kATSUQDBoldfaceTag, kATSUQDItalicTag};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8771 static const ByteCount sizes[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8772 {sizeof (ATSUFontID), sizeof (Fixed),
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8773 sizeof (Boolean), sizeof (Boolean)};
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8774 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
8775 static Boolean bold_p, italic_p;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8776 static const ATSUAttributeValuePtr values[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8777 {&font_id, &size_fixed,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8778 &bold_p, &italic_p};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8779 static const ATSUFontFeatureType types[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8780 {kAllTypographicFeaturesType, kDiacriticsType};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8781 static const ATSUFontFeatureSelector selectors[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8782 {kAllTypeFeaturesOffSelector, kDecomposeDiacriticsSelector};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8783 FMFontStyle style;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
8784
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8785 font_id = atsu_find_font_from_family_name (family);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8786 if (font_id == kATSUInvalidFontID)
78968
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
8787 return NULL;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8788 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
8789 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
8790 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
8791 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
8792 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
8793 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8794 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
8795 types, selectors);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8796 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
8797 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8798 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
8799 tags, sizes, values);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8800 if (err != noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8801 return NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8802 err = FMGetFontFamilyInstanceFromFont (font_id, &fontnum, &style);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8803 if (err != noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8804 fontnum = -1;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8805 scriptcode = kTextEncodingMacUnicode;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8806 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8807 else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8808 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8809 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8810 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
8811
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8812 if (NILP (tmp))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8813 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8814 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
8815 #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
8816 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
8817 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8818 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
8819 #else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8820 scriptcode = FontToScript (fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8821 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8822 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8823
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8824 font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8825
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8826 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
8827 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
8828 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
8829 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
8830 #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
8831 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
8832 #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
8833 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
8834 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
8835 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8836 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8837
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8838 /* 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
8839 "*-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
8840 (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
8841 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
8842 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
8843 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
8844
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8845 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
8846
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8847 #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
8848 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
8849 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8850 OSStatus err;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8851 UniChar c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8852
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8853 font->min_byte1 = 0;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8854 font->max_byte1 = 0xff;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8855 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
8856 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
8857
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8858 font->bounds.rows = xmalloc (sizeof (XCharStruct *) * 0x100);
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8859 bzero (font->bounds.rows, sizeof (XCharStruct *) * 0x100);
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8860 font->bounds.rows[0] = xmalloc (sizeof (XCharStruct) * 0x100);
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8861 pcm_init (font->bounds.rows[0], 0x100);
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8862
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
8863 #if USE_CG_TEXT_DRAWING
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8864 if (fontnum != -1)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8865 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8866 FMFontStyle style;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8867 ATSFontRef ats_font;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8868
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8869 err = FMGetFontFromFontFamilyInstance (fontnum, fontface,
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
8870 &font_id, &style);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8871 /* Use CG text drawing if italic/bold is not synthesized. */
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8872 if (err == noErr && style == fontface)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8873 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8874 ats_font = FMGetATSFontRefFromFont (font_id);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8875 font->cg_font = CGFontCreateWithPlatformFont (&ats_font);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8876 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8877 }
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
8878
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8879 if (font->cg_font)
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8880 {
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8881 font->cg_glyphs = xmalloc (sizeof (CGGlyph) * 0x100);
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8882 bzero (font->cg_glyphs, sizeof (CGGlyph) * 0x100);
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8883 }
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
8884 #endif
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8885 space_bounds = font->bounds.rows[0] + 0x20;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8886 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
8887 &font->ascent, &font->descent,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8888 space_bounds,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8889 #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
8890 (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
8891 : NULL)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8892 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8893 NULL
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8894 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8895 );
73385
bd82ccfce877 (mac_query_char_extents): Don't return glyph ID if layout
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73298
diff changeset
8896 if (err != noErr
bd82ccfce877 (mac_query_char_extents): Don't return glyph ID if layout
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73298
diff changeset
8897 || space_bounds->width <= 0 || FONT_HEIGHT (font) <= 0)
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8898 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8899 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
8900 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8901 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8902
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8903 pcm = font->bounds.rows[0];
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8904 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
8905 {
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
8906 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
8907 /* 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
8908 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
8909 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
8910 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8911 #if USE_CG_TEXT_DRAWING
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8912 if (font->cg_glyphs)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8913 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8914 c = 0x9f;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8915 pcm = NULL;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8916 continue;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8917 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8918 #endif
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8919 break;
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
8920 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8921
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8922 mac_query_char_extents (font->mac_style, c, NULL, NULL,
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8923 pcm ? pcm + c : NULL,
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8924 #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
8925 (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
8926 : NULL)
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
8927 #else
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8928 NULL
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8929 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8930 );
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8931
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8932 #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
8933 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
8934 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8935 /* 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
8936 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
8937 CGFontRelease (font->cg_font);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8938 font->cg_font = NULL;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8939 xfree (font->cg_glyphs);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8940 font->cg_glyphs = NULL;
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8941 if (pcm == NULL)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8942 break;
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
8943 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8944 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8945 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8946 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8947 else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8948 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8949 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8950 OSStatus err;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8951 FontInfo the_fontinfo;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8952 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
8953
73133
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
8954 #if USE_CG_DRAWING
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
8955 mac_prepare_for_quickdraw (f);
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
8956 #endif
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
8957 SetPortWindowPort (FRAME_MAC_WINDOW (f));
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8958
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8959 TextFont (fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8960 TextSize (size);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8961 TextFace (fontface);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8962
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8963 GetFontInfo (&the_fontinfo);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8964
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8965 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
8966 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
8967
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8968 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
8969 || font->mac_scriptcode == smTradChinese
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8970 || font->mac_scriptcode == smSimpChinese
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8971 || font->mac_scriptcode == smKorean);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8972
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8973 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
8974 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8975 int char_width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8976
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8977 font->min_byte1 = 0xa1;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8978 font->max_byte1 = 0xfe;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8979 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
8980 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
8981
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8982 /* 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
8983 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
8984 some fonts. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8985 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
8986 {
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8987 case smJapanese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8988 font->min_byte1 = 0x81;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8989 font->max_byte1 = 0xfc;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8990 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
8991 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
8992 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
8993 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8994 case smTradChinese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8995 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
8996 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
8997 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8998 case smSimpChinese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8999 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
9000 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9001 case smKorean:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9002 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
9003 break;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
9004 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9005
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9006 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
9007
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9008 if (fontface & italic)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9009 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
9010 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9011 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
9012 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
9013 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
9014 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
9015 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
9016
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9017 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
9018 }
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9019 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9020 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9021 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9022
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9023 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
9024 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
9025 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
9026
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9027 font->bounds.per_char =
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9028 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
9029 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
9030 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
9031
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9032 space_bounds = font->bounds.per_char;
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
9033 err = mac_query_char_extents (NULL, 0x20, &font->ascent,
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
9034 &font->descent, space_bounds, NULL);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
9035 if (err != noErr || space_bounds->width <= 0)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
9036 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
9037 mac_unload_font (&one_mac_display_info, font);
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
9038 return NULL;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
9039 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9040
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9041 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
9042 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
9043 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9044 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9045
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9046 if (space_bounds)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9047 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9048 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9049
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9050 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
9051 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
9052 if (pcm->width > 0)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9053 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9054 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
9055 pcm->lbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9056 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
9057 pcm->rbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9058 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
9059 pcm->width);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9060 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
9061 pcm->ascent);
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
9062 font->min_bounds.descent = min (font->min_bounds.descent,
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
9063 pcm->descent);
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9064
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9065 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
9066 pcm->lbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9067 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
9068 pcm->rbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9069 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
9070 pcm->width);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9071 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
9072 pcm->ascent);
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
9073 font->max_bounds.descent = max (font->max_bounds.descent,
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
9074 pcm->descent);
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9075 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9076 if (
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9077 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9078 font->mac_style == NULL &&
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9079 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9080 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
9081 && 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
9082 && 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
9083 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9084 /* 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
9085 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
9086 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
9087 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9088 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9089
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
9090 #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
9091 /* 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
9092 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
9093 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
9094 if (
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
9095 #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
9096 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
9097 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
9098 (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
9099 || 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
9100 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
9101 #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
9102
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9103 return font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9104 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9105
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9106
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9107 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9108 mac_unload_font (dpyinfo, font)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9109 struct mac_display_info *dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9110 XFontStruct *font;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9111 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9112 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
9113 #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
9114 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
9115 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9116 int i;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9117
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9118 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
9119 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
9120 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
9121 xfree (font->bounds.rows);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9122 ATSUDisposeStyle (font->mac_style);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9123 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9124 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9125 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9126 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
9127 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
9128 #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
9129 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
9130 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
9131 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
9132 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
9133 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9134 xfree (font);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9135 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9136
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9137
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9138 /* 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
9139 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
9140 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
9141 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
9142
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9143 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
9144 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
9145 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
9146 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
9147 int size;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9148 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9149 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
9150 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
9151
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9152 /* 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
9153 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
9154 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
9155 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
9156
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9157 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
9158 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9159 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
9160 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9161
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9162 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
9163 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
9164 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
9165 && (!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
9166 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
9167 || !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
9168 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
9169 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
9170 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9171 else
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9172 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
9173
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9174 /* 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
9175 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9176 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
9177 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
9178 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9179
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9180 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
9181
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9182 BLOCK_INPUT;
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
9183 font = mac_load_query_font (f, fontname);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9184 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
9185 if (!font)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9186 return NULL;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9187
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9188 /* 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
9189 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
9190 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
9191 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9192
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9193 /* 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
9194 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
9195 && 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
9196 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9197 int sz;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9198 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
9199 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
9200 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
9201 = (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
9202 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9203
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9204 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
9205 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
9206 ++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
9207
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9208 /* 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
9209 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
9210 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
9211 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
9212 fontp->font_idx = i;
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
9213 fontp->charset = -1; /* fs_load_font sets it. */
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9214 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
9215 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
9216
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9217 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
9218 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9219 /* Fixed width font. */
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9220 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
9221 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9222 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9223 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9224 XChar2b char2b;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9225 XCharStruct *pcm;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9226
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9227 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
9228 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
9229 if (pcm)
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9230 fontp->space_width = pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9231 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9232 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
9233
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9234 if (pcm)
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9235 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9236 int width = pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9237 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
9238 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
9239 width += pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9240 fontp->average_width = width / 95;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9241 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9242 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9243 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
9244 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9245
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9246 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
9247 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
9248
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9249 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
9250 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
9251 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9252 /* 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
9253 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
9254 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
9255 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
9256 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
9257 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9258
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
9259 /* MAC_TODO: The script encoding is irrelevant in unicode? */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9260 /* 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
9261 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
9262 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
9263 (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
9264 2:0xA020..0xFF7F). For the moment, we don't know which charset
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
9265 uses this font. So, we set information in fontp->encoding_type
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9266 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
9267 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
9268 if (font->mac_scriptcode == smJapanese)
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
9269 fontp->encoding_type = 4;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9270 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9271 {
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
9272 fontp->encoding_type
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9273 = (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
9274 /* 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
9275 ? (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
9276 ? (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
9277 ? 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
9278 : 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
9279 : 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
9280 /* 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
9281 : (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
9282 ? (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
9283 ? (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
9284 ? (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
9285 ? 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
9286 : 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
9287 : 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
9288 : 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
9289 : (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
9290 ? (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
9291 ? 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
9292 : 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
9293 : 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
9294 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9295
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9296 #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
9297 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
9298 = (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
9299 ? (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
9300 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
9301 = (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
9302 ? (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
9303 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
9304 = (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
9305 ? (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
9306 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9307 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
9308 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
9309 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
9310 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9311
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9312 /* 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
9313 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
9314 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
9315 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
9316 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
9317 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
9318 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9319 return fontp;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9320 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9321 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9322
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9323
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9324 /* 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
9325 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
9326
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9327 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
9328 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
9329 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
9330 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
9331 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9332 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
9333 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9334
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9335 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
9336 if (dpyinfo->font_table[i].name
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
9337 && (!xstricmp (dpyinfo->font_table[i].name, fontname)
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
9338 || !xstricmp (dpyinfo->font_table[i].full_name, fontname)))
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9339 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
9340 return NULL;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9341 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9342
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9343
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9344 /* 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
9345 `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
9346
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9347 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9348 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
9349 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
9350 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9351 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
9352
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9353 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
9354 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9355 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
9356 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
9357 && 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
9358 && (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
9359 >= 0))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9360 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9361 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9362 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
9363 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9364 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
9365 = (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
9366
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9367 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
9368 xfree (ccl);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9369 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9370 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
9371 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9372 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9373
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9374 #if USE_MAC_FONT_PANEL
71135
a40a279936e8 (mac_handle_visibility_change): Set buf.arg to Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71065
diff changeset
9375 /* Whether Font Panel has been shown before. The first call to font
a40a279936e8 (mac_handle_visibility_change): Set buf.arg to Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71065
diff changeset
9376 panel functions (FPIsFontPanelVisible, SetFontInfoForSelection) is
a40a279936e8 (mac_handle_visibility_change): Set buf.arg to Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71065
diff changeset
9377 slow. This variable is used for deferring such a call as much as
a40a279936e8 (mac_handle_visibility_change): Set buf.arg to Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71065
diff changeset
9378 possible. */
71065
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9379 static int font_panel_shown_p = 0;
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9380
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9381 extern Lisp_Object Qfont;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9382 static Lisp_Object Qpanel_closed, Qselection;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9383
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9384 static OSStatus mac_store_event_ref_as_apple_event P_ ((AEEventClass, AEEventID,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9385 Lisp_Object,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9386 Lisp_Object,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9387 EventRef, UInt32,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9388 const EventParamName *,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9389 const EventParamType *));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9390
71065
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9391 int
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9392 mac_font_panel_visible_p ()
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9393 {
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9394 return font_panel_shown_p && FPIsFontPanelVisible ();
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9395 }
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9396
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9397 static pascal OSStatus
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9398 mac_handle_font_event (next_handler, event, data)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9399 EventHandlerCallRef next_handler;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9400 EventRef event;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9401 void *data;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9402 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9403 OSStatus result, err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9404 Lisp_Object id_key;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9405 int num_params;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9406 const EventParamName *names;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9407 const EventParamType *types;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9408 static const EventParamName names_sel[] = {kEventParamATSUFontID,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9409 kEventParamATSUFontSize,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9410 kEventParamFMFontFamily,
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
9411 kEventParamFMFontStyle,
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9412 kEventParamFMFontSize,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9413 kEventParamFontColor};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9414 static const EventParamType types_sel[] = {typeATSUFontID,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9415 typeATSUSize,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9416 typeFMFontFamily,
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
9417 typeFMFontStyle,
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9418 typeFMFontSize,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9419 typeFontColor};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9420
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9421 result = CallNextEventHandler (next_handler, event);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9422 if (result != eventNotHandledErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9423 return result;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9424
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9425 switch (GetEventKind (event))
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9426 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9427 case kEventFontPanelClosed:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9428 id_key = Qpanel_closed;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9429 num_params = 0;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9430 names = NULL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9431 types = NULL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9432 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9433
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9434 case kEventFontSelection:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9435 id_key = Qselection;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9436 num_params = sizeof (names_sel) / sizeof (names_sel[0]);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9437 names = names_sel;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9438 types = types_sel;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9439 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9440 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9441
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9442 err = mac_store_event_ref_as_apple_event (0, 0, Qfont, id_key,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9443 event, num_params,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9444 names, types);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9445 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9446 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9447
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9448 return result;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9449 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9450
71065
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9451 OSStatus
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9452 mac_show_hide_font_panel ()
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9453 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9454 if (!font_panel_shown_p)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9455 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9456 OSStatus err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9457
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9458 static const EventTypeSpec specs[] =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9459 {{kEventClassFont, kEventFontPanelClosed},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9460 {kEventClassFont, kEventFontSelection}};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9461
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9462 err = InstallApplicationEventHandler (mac_handle_font_event,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9463 GetEventTypeCount (specs),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9464 specs, NULL, NULL);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9465 if (err != noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9466 return err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9467
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9468 font_panel_shown_p = 1;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9469 }
71065
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9470
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9471 return FPShowHideFontPanel ();
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9472 }
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9473
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9474 OSStatus
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9475 mac_set_font_info_for_selection (f, face_id, c)
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9476 struct frame *f;
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9477 int face_id, c;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9478 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9479 OSStatus err;
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9480 EventTargetRef target = NULL;
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9481 XFontStruct *font = NULL;
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9482
71065
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9483 if (!mac_font_panel_visible_p ())
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9484 return noErr;
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9485
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9486 if (f)
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9487 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9488 target = GetWindowEventTarget (FRAME_MAC_WINDOW (f));
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9489
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9490 if (FRAME_FACE_CACHE (f) && CHAR_VALID_P (c, 0))
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9491 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9492 struct face *face;
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9493
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9494 face_id = FACE_FOR_CHAR (f, FACE_FROM_ID (f, face_id), c);
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9495 face = FACE_FROM_ID (f, face_id);
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9496 font = face->font;
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9497 }
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9498 }
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9499
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9500 if (font == NULL)
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9501 err = SetFontInfoForSelection (kFontSelectionATSUIType, 0, NULL, target);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9502 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9503 {
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9504 if (font->mac_fontnum != -1)
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9505 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9506 FontSelectionQDStyle qd_style;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9507
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9508 qd_style.version = kFontSelectionQDStyleVersionZero;
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9509 qd_style.instance.fontFamily = font->mac_fontnum;
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9510 qd_style.instance.fontStyle = font->mac_fontface;
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9511 qd_style.size = font->mac_fontsize;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9512 qd_style.hasColor = false;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9513
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9514 err = SetFontInfoForSelection (kFontSelectionQDType,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9515 1, &qd_style, target);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9516 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9517 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9518 err = SetFontInfoForSelection (kFontSelectionATSUIType,
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9519 1, &font->mac_style, target);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9520 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9521
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9522 return err;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9523 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9524 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9525
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9526
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9527 /* 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
9528
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
9529 #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
9530 #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
9531 #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
9532 #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
9533 #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
9534 #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
9535 #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
9536 #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
9537 #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
9538 #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
9539 #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
9540 #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
9541 #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
9542 #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
9543 #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
9544 #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
9545
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9546 #if __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9547 #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
9548 #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
9549 #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
9550
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
9551 #define M_APPLE 234
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9552 #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
9553
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9554 #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
9555
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9556 #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
9557 #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
9558
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9559 #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
9560
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9561 #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
9562 #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
9563 #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
9564
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9565 /* 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
9566 Lisp_Object Qreverse;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9567
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9568
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9569 /* 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
9570 Lisp_Object Vmac_control_modifier;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9571
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9572 /* 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
9573 Lisp_Object Vmac_option_modifier;
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
9574
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9575 /* 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
9576 Lisp_Object Vmac_command_modifier;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9577
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9578 /* 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
9579 Lisp_Object Vmac_function_modifier;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9580
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9581 /* 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
9582 a three button mouse */
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9583 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
9584
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
9585 #if TARGET_API_MAC_CARBON
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
9586 /* 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
9587 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
9588 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
9589
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
9590 /* 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
9591 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
9592 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
9593
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
9594 /* 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
9595 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
9596 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
9597 #endif
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9598
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9599 /* 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
9600 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
9601 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
9602 static struct input_event *read_socket_inev = NULL;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9603
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
9604 /* Whether or not the screen configuration has changed. */
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
9605 static int mac_screen_config_changed = 0;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
9606
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9607 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
9608
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9609 /* Apple Events */
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
9610 #if TARGET_API_MAC_CARBON
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
9611 static Lisp_Object Qhi_command;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9612 #ifdef MAC_OSX
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9613 extern Lisp_Object Qwindow;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9614 static Lisp_Object Qtoolbar_switch_mode;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9615 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9616 #if USE_MAC_TSM
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9617 static TSMDocumentID tsm_document_id;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9618 static Lisp_Object Qtext_input;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9619 static Lisp_Object Qupdate_active_input_area, Qunicode_for_key_event;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9620 static Lisp_Object Vmac_ts_active_input_overlay;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9621 extern Lisp_Object Qbefore_string;
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9622 static Lisp_Object Vmac_ts_script_language_on_focus;
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
9623 static Lisp_Object saved_ts_script_language_on_focus;
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9624 static ScriptLanguageRecord saved_ts_language;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9625 static Component saved_ts_component;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9626 #endif
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9627 #endif /* TARGET_API_MAC_CARBON */
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9628 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
9629 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
9630 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
9631 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
9632 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
9633 Lisp_Object *));
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9634 extern OSErr init_coercion_handler P_ ((void));
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9635
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9636 /* Drag and Drop */
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
9637 extern OSErr install_drag_handler P_ ((WindowRef));
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
9638 extern void remove_drag_handler P_ ((WindowRef));
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
9639
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9640 #if TARGET_API_MAC_CARBON
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
9641 /* Showing help echo string during menu tracking */
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9642 extern OSStatus install_menu_target_item_handler P_ ((void));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9643
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
9644 #ifdef MAC_OSX
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9645 extern OSStatus install_service_handler ();
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9646 static Lisp_Object Qservice, 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
9647 #endif
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9648 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9649
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9650 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
9651 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
9652
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9653 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
9654 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
9655
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9656 /* Table for translating Mac keycode to X keysym values. Contributed
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9657 by Sudhir Shenoy.
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9658 Mapping for special keys is now identical to that in Apple X11
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9659 except `clear' (-> <clear>) on the KeyPad, `enter' (-> <kp-enter>)
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9660 on the right of the Cmd key on laptops, and fn + `enter' (->
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9661 <linefeed>). */
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9662 static const unsigned char keycode_to_xkeysym_table[] = {
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9663 /*0x00*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9664 /*0x10*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9665 /*0x20*/ 0, 0, 0, 0, 0x0d /*return*/, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9666
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9667 /*0x30*/ 0x09 /*tab*/, 0 /*0x0020 space*/, 0, 0x08 /*backspace*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9668 /*0x34*/ 0x8d /*enter on laptops*/, 0x1b /*escape*/, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9669 /*0x38*/ 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9670 /*0x3C*/ 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9671
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9672 /*0x40*/ 0, 0xae /*kp-decimal*/, 0, 0xaa /*kp-multiply*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9673 /*0x44*/ 0, 0xab /*kp-add*/, 0, 0x0b /*clear*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9674 /*0x48*/ 0, 0, 0, 0xaf /*kp-divide*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9675 /*0x4C*/ 0x8d /*kp-enter*/, 0, 0xad /*kp-subtract*/, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9676
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9677 /*0x50*/ 0, 0xbd /*kp-equal*/, 0xb0 /*kp-0*/, 0xb1 /*kp-1*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9678 /*0x54*/ 0xb2 /*kp-2*/, 0xb3 /*kp-3*/, 0xb4 /*kp-4*/, 0xb5 /*kp-5*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9679 /*0x58*/ 0xb6 /*kp-6*/, 0xb7 /*kp-7*/, 0, 0xb8 /*kp-8*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9680 /*0x5C*/ 0xb9 /*kp-9*/, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9681
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9682 /*0x60*/ 0xc2 /*f5*/, 0xc3 /*f6*/, 0xc4 /*f7*/, 0xc0 /*f3*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9683 /*0x64*/ 0xc5 /*f8*/, 0xc6 /*f9*/, 0, 0xc8 /*f11*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9684 /*0x68*/ 0, 0xca /*f13*/, 0xcd /*f16*/, 0xcb /*f14*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9685 /*0x6C*/ 0, 0xc7 /*f10*/, 0x0a /*fn+enter on laptops*/, 0xc9 /*f12*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9686
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9687 /*0x70*/ 0, 0xcc /*f15*/, 0x6a /*help*/, 0x50 /*home*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9688 /*0x74*/ 0x55 /*pgup*/, 0xff /*delete*/, 0xc1 /*f4*/, 0x57 /*end*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9689 /*0x78*/ 0xbf /*f2*/, 0x56 /*pgdown*/, 0xbe /*f1*/, 0x51 /*left*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9690 /*0x7C*/ 0x53 /*right*/, 0x54 /*down*/, 0x52 /*up*/, 0
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9691 };
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9692
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9693 #ifdef MAC_OSX
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9694 /* Table for translating Mac keycode with the laptop `fn' key to that
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9695 without it. Destination symbols in comments are keys on US
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9696 keyboard, and they may not be the same on other types of keyboards.
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9697 If the destination is identical to the source (f1 ... f12), it
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9698 doesn't map `fn' key to a modifier. */
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9699 static const unsigned char fn_keycode_to_keycode_table[] = {
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9700 /*0x00*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9701 /*0x10*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9702 /*0x20*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9703
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9704 /*0x30*/ 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9705 /*0x34*/ 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9706 /*0x38*/ 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9707 /*0x3C*/ 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9708
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9709 /*0x40*/ 0, 0x2f /*kp-decimal -> '.'*/, 0, 0x23 /*kp-multiply -> 'p'*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9710 /*0x44*/ 0, 0x2c /*kp-add -> '/'*/, 0, 0x16 /*clear -> '6'*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9711 /*0x48*/ 0, 0, 0, 0x1d /*kp-/ -> '0'*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9712 /*0x4C*/ 0x24 /*kp-enter -> return*/, 0, 0x29 /*kp-subtract -> ';'*/, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9713
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9714 /*0x50*/ 0, 0x1b /*kp-equal -> '-'*/, 0x2e /*kp-0 -> 'm'*/, 0x26 /*kp-1 -> 'j'*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9715 /*0x54*/ 0x28 /*kp-2 -> 'k'*/, 0x25 /*kp-3 -> 'l'*/, 0x20 /*kp-4 -> 'u'*/, 0x22 /*kp-5 ->'i'*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9716 /*0x58*/ 0x1f /*kp-6 -> 'o'*/, 0x1a /*kp-7 -> '7'*/, 0, 0x1c /*kp-8 -> '8'*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9717 /*0x5C*/ 0x19 /*kp-9 -> '9'*/, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9718
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9719 /*0x60*/ 0x60 /*f5 = f5*/, 0x61 /*f6 = f6*/, 0x62 /*f7 = f7*/, 0x63 /*f3 = f3*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9720 /*0x64*/ 0x64 /*f8 = f8*/, 0x65 /*f9 = f9*/, 0, 0x67 /*f11 = f11*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9721 /*0x68*/ 0, 0, 0, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9722 /*0x6C*/ 0, 0x6d /*f10 = f10*/, 0, 0x6f /*f12 = f12*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9723
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9724 /*0x70*/ 0, 0, 0, 0x7b /*home -> left*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9725 /*0x74*/ 0x7e /*pgup -> up*/, 0x33 /*delete -> backspace*/, 0x76 /*f4 = f4*/, 0x7c /*end -> right*/,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9726 /*0x78*/ 0x78 /*f2 = f2*/, 0x7d /*pgdown -> down*/, 0x7a /*f1 = f1*/, 0,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9727 /*0x7C*/ 0, 0, 0, 0
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9728 };
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9729 #endif /* MAC_OSX */
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9730
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9731 static int
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
9732 #if TARGET_API_MAC_CARBON
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9733 mac_to_emacs_modifiers (UInt32 mods)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9734 #else
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9735 mac_to_emacs_modifiers (EventModifiers mods)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9736 #endif
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9737 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9738 unsigned int result = 0;
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9739 if (mods & shiftKey)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9740 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
9741
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9742 /* Deactivated to simplify configuration:
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9743 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
9744 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
9745 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
9746 composed one.
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9747 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
9748 (( !NILP(Vmac_option_modifier) ||
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9749 ((mods & cmdKey) || (mods & controlKey))))) */
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9750
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
9751 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
9752 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
9753 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9754 result |= XUINT(val);
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
9755 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9756 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
9757 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
9758 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9759 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
9760 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9761 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
9762 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
9763 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9764 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
9765 }
66818
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 #ifdef MAC_OSX
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9768 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
9769 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
9770 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9771 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
9772 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
9773 #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
9774
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9775 return result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9776 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9777
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9778 static UInt32
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9779 mac_mapped_modifiers (modifiers)
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9780 UInt32 modifiers;
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9781 {
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9782 UInt32 mapped_modifiers_all =
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9783 (NILP (Vmac_control_modifier) ? 0 : controlKey)
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9784 | (NILP (Vmac_option_modifier) ? 0 : optionKey)
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9785 | (NILP (Vmac_command_modifier) ? 0 : cmdKey);
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9786
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9787 #ifdef MAC_OSX
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9788 mapped_modifiers_all |=
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9789 (NILP (Vmac_function_modifier) ? 0 : kEventKeyModifierFnMask);
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9790 #endif
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9791
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9792 return mapped_modifiers_all & modifiers;
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9793 }
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9794
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9795 static int
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9796 mac_get_emulated_btn ( UInt32 modifiers )
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9797 {
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9798 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
9799 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
9800 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
9801 if (modifiers & cmdKey)
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9802 result = cmdIs3 ? 2 : 1;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9803 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
9804 result = cmdIs3 ? 1 : 2;
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9805 }
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9806 return result;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9807 }
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9808
75200
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9809 #if TARGET_API_MAC_CARBON
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9810 /***** Code to handle C-g testing *****/
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9811 extern int quit_char;
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9812 extern int make_ctrl_char P_ ((int));
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9813
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9814 int
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9815 mac_quit_char_key_p (modifiers, key_code)
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9816 UInt32 modifiers, key_code;
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9817 {
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9818 UInt32 char_code;
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9819 unsigned long some_state = 0;
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9820 Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9821 int c, emacs_modifiers;
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9822
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9823 /* Mask off modifier keys that are mapped to some Emacs modifiers. */
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9824 key_code |= (modifiers & ~(mac_mapped_modifiers (modifiers)));
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9825 char_code = KeyTranslate (kchr_ptr, key_code, &some_state);
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9826 if (char_code & ~0xff)
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9827 return 0;
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9828
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9829 emacs_modifiers = mac_to_emacs_modifiers (modifiers);
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9830 if (emacs_modifiers & ctrl_modifier)
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9831 c = make_ctrl_char (char_code);
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9832
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9833 c |= (emacs_modifiers
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9834 & (meta_modifier | alt_modifier
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9835 | hyper_modifier | super_modifier));
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9836
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9837 return c == quit_char;
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9838 }
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9839 #endif
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9840
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
9841 #if TARGET_API_MAC_CARBON
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9842 /* Obtains the event modifiers from the event ref and then calls
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9843 mac_to_emacs_modifiers. */
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9844 static int
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9845 mac_event_to_emacs_modifiers (EventRef eventRef)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9846 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9847 UInt32 mods = 0, class;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9848
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9849 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9850 sizeof (UInt32), NULL, &mods);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9851 class = GetEventClass (eventRef);
55583
21f88361795c Various fixes to support USE_LSB_TAG with carbon emacs. Mostly fixing
Steven Tamm <steventamm@mac.com>
parents: 55539
diff changeset
9852 if (!NILP (Vmac_emulate_three_button_mouse) &&
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9853 (class == kEventClassMouse || class == kEventClassCommand))
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9854 {
56277
fd126130c3cd macterm.c (mac_get_emulated_btn)
Steven Tamm <steventamm@mac.com>
parents: 56271
diff changeset
9855 mods &= ~(optionKey | cmdKey);
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9856 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9857 return mac_to_emacs_modifiers (mods);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9858 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9859
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9860 /* 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
9861 code in the emacs input_event. */
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9862 static int
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9863 mac_get_mouse_btn (EventRef ref)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9864 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9865 EventMouseButton result = kEventMouseButtonPrimary;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9866 GetEventParameter (ref, kEventParamMouseButton, typeMouseButton, NULL,
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9867 sizeof (EventMouseButton), NULL, &result);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9868 switch (result)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9869 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9870 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
9871 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
9872 return 0;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9873 else {
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9874 UInt32 mods = 0;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9875 GetEventParameter (ref, kEventParamKeyModifiers, typeUInt32, NULL,
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9876 sizeof (UInt32), NULL, &mods);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9877 return mac_get_emulated_btn(mods);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9878 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9879 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
9880 return mac_wheel_button_is_mouse_2 ? 2 : 1;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9881 case kEventMouseButtonTertiary:
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9882 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
9883 return mac_wheel_button_is_mouse_2 ? 1 : 2;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9884 default:
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9885 return 0;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9886 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9887 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9888
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9889 /* Normally, ConvertEventRefToEventRecord will correctly handle all
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9890 events. However the click of the mouse wheel is not converted to a
77705
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9891 mouseDown or mouseUp event. Likewise for dead key events. This
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9892 calls ConvertEventRefToEventRecord, but then checks to see if it is
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9893 a mouse up/down, or a dead key Carbon event that has not been
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9894 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
9895 XTread_socket loop). */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9896 static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9897 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9898 OSStatus err;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9899 Boolean result = ConvertEventRefToEventRecord (eventRef, eventRec);
77705
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9900 EventKind action;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9901
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9902 if (result)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9903 return result;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9904
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9905 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
9906 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9907 case kEventClassMouse:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9908 switch (GetEventKind (eventRef))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9909 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9910 case kEventMouseDown:
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9911 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
9912 result = 1;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9913 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9914
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9915 case kEventMouseUp:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9916 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
9917 result = 1;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9918 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9919
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9920 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9921 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9922 }
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
9923 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9924
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9925 case kEventClassKeyboard:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9926 switch (GetEventKind (eventRef))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9927 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9928 case kEventRawKeyDown:
77705
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9929 action = keyDown;
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9930 goto keystroke_common;
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9931 case kEventRawKeyRepeat:
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9932 action = autoKey;
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9933 goto keystroke_common;
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9934 case kEventRawKeyUp:
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9935 action = keyUp;
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9936 keystroke_common:
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9937 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9938 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
9939 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
9940
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9941 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
9942 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
9943 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
9944 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
9945 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
9946 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
9947 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
9948 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
9949 {
77705
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9950 eventRec->what = action;
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9951 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
9952 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
9953 }
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9954 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9955 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9956
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9957 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9958 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9959 }
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
9960 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9961
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9962 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9963 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9964 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9965
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9966 if (result)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9967 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9968 /* 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
9969 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
9970
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9971 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
9972 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
9973 /* 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
9974 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
9975 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
9976 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
9977 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
9978
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9979 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
9980 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9981
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9982 return result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9983 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9984
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9985 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9986
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
9987 #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
9988 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9989 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
9990 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9991 Handle menubar_handle;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
9992 MenuRef menu;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9993
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9994 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
9995 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
9996 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9997 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
9998 DrawMenuBar ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9999
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10000 #if !TARGET_API_MAC_CARBON
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10001 menu = GetMenuRef (M_APPLE);
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10002 if (menu != NULL)
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10003 AppendResMenu (menu, 'DRVR');
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10004 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10005 abort ();
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10006 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10007 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10008
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10009
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10010 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10011 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
10012 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10013 #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
10014 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
10015 InitFonts ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10016 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
10017 InitWindows ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10018 InitMenus ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10019 TEInit ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10020 InitDialogs (NULL);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10021 #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
10022 InitCursor ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10023
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10024 #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
10025 /* 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
10026 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
10027
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10028 /* 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
10029 complicated scripts */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10030 MaxApplZone ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10031 MoreMasters ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10032 #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
10033 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10034
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10035 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10036 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
10037 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10038 SInt32 physical_ram_size, logical_ram_size;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10039
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10040 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
10041 || 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
10042 || 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
10043 || 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
10044 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10045 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
10046 exit (1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10047 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10048 }
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10049 #endif /* 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
10050
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10051 static void
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10052 do_window_update (WindowRef win)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10053 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10054 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
10055
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10056 BeginUpdate (win);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10057
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10058 /* 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
10059 below. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10060 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
10061 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10062 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
10063 {
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
10064 /* 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
10065 #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
10066 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
10067 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
10068 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
10069 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10070 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10071 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
10072 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10073 Rect r;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10074 #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
10075 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
10076
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
10077 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
10078 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
10079 expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top);
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
10080 #if USE_CG_DRAWING
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
10081 mac_prepare_for_quickdraw (f);
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
10082 #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
10083 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
10084 DisposeRgn (region);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10085 #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
10086 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
10087 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
10088 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
10089 #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
10090 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10091 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10092
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10093 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
10094 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10095
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10096 static int
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10097 is_emacs_window (WindowRef win)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10098 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10099 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
10100
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10101 if (!win)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10102 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10103
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10104 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
10105 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
10106 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
10107 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10108
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10109 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10110 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10111
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10112 #if USE_MAC_TSM
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10113 static OSStatus
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10114 mac_tsm_resume ()
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10115 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10116 OSStatus err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10117 ScriptLanguageRecord slrec, *slptr = NULL;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10118
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10119 err = ActivateTSMDocument (tsm_document_id);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10120
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10121 if (err == noErr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10122 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10123 if (EQ (Vmac_ts_script_language_on_focus, Qt)
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10124 && EQ (saved_ts_script_language_on_focus, Qt))
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10125 slptr = &saved_ts_language;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10126 else if (CONSP (Vmac_ts_script_language_on_focus)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10127 && INTEGERP (XCAR (Vmac_ts_script_language_on_focus))
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10128 && INTEGERP (XCDR (Vmac_ts_script_language_on_focus))
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10129 && CONSP (saved_ts_script_language_on_focus)
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10130 && EQ (XCAR (saved_ts_script_language_on_focus),
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10131 XCAR (Vmac_ts_script_language_on_focus))
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10132 && EQ (XCDR (saved_ts_script_language_on_focus),
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10133 XCDR (Vmac_ts_script_language_on_focus)))
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10134 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10135 slrec.fScript = XINT (XCAR (Vmac_ts_script_language_on_focus));
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10136 slrec.fLanguage = XINT (XCDR (Vmac_ts_script_language_on_focus));
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10137 slptr = &slrec;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10138 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10139 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10140
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10141 if (slptr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10142 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10143 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10144 err = SetDefaultInputMethodOfClass (saved_ts_component, slptr,
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10145 kKeyboardInputMethodClass);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10146 #else
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10147 err = SetDefaultInputMethod (saved_ts_component, slptr);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10148 #endif
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10149 if (err == noErr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10150 err = SetTextServiceLanguage (slptr);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10151
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10152 /* Seems to be needed on Mac OS X 10.2. */
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10153 if (err == noErr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10154 KeyScript (slptr->fScript | smKeyForceKeyScriptMask);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10155 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10156
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10157 return err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10158 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10159
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10160 static OSStatus
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10161 mac_tsm_suspend ()
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10162 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10163 OSStatus err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10164 ScriptLanguageRecord slrec, *slptr = NULL;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10165
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10166 saved_ts_script_language_on_focus = Vmac_ts_script_language_on_focus;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10167
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10168 if (EQ (Vmac_ts_script_language_on_focus, Qt))
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10169 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10170 err = GetTextServiceLanguage (&saved_ts_language);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10171 if (err == noErr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10172 slptr = &saved_ts_language;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10173 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10174 else if (CONSP (Vmac_ts_script_language_on_focus)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10175 && INTEGERP (XCAR (Vmac_ts_script_language_on_focus))
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10176 && INTEGERP (XCDR (Vmac_ts_script_language_on_focus)))
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10177 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10178 slrec.fScript = XINT (XCAR (Vmac_ts_script_language_on_focus));
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10179 slrec.fLanguage = XINT (XCDR (Vmac_ts_script_language_on_focus));
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10180 slptr = &slrec;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10181 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10182
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10183 if (slptr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10184 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10185 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10186 GetDefaultInputMethodOfClass (&saved_ts_component, slptr,
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10187 kKeyboardInputMethodClass);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10188 #else
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10189 GetDefaultInputMethod (&saved_ts_component, slptr);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10190 #endif
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10191 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10192
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10193 err = DeactivateTSMDocument (tsm_document_id);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10194
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10195 return err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10196 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10197 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10198
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
10199 #if !TARGET_API_MAC_CARBON
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
10200 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10201 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
10202 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10203 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
10204 SInt16 da_driver_refnum;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10205
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10206 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
10207 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
10208 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10209 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10210 GetMenuItemText (GetMenuRef (M_APPLE), menu_item, item_name);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10211 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
10212 }
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
10213 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10214 #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
10215
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10216 /* 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
10217 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
10218
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10219 static void
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10220 do_grow_window (w, e)
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10221 WindowRef w;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10222 const EventRecord *e;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10223 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10224 Rect limit_rect;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10225 int rows, columns, width, height;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10226 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
10227 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
10228 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
10229 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10230 Rect new_rect;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10231 #else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10232 long grow_size;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10233 #endif
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10234
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10235 if (size_hints->flags & PMinSize)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10236 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10237 min_width = size_hints->min_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10238 min_height = size_hints->min_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10239 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10240 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
10241
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10242 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10243 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
10244 return;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10245 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
10246 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
10247 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10248 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
10249 /* 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
10250 if (grow_size == 0)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10251 return;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10252 height = HiWord (grow_size);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10253 width = LoWord (grow_size);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10254 #endif
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10255
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10256 if (width != FRAME_PIXEL_WIDTH (f)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10257 || height != FRAME_PIXEL_HEIGHT (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10258 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10259 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
10260 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10261
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10262 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
10263 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10264 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10265
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10266
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10267 #if TARGET_API_MAC_CARBON
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10268 static Point
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10269 mac_get_ideal_size (f)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10270 struct frame *f;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10271 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10272 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10273 WindowRef w = FRAME_MAC_WINDOW (f);
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10274 Point ideal_size;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10275 Rect standard_rect;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10276 int height, width, columns, rows;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10277
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10278 ideal_size.h = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10279 ideal_size.v = dpyinfo->height;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10280 IsWindowInStandardState (w, &ideal_size, &standard_rect);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10281 /* Adjust the standard size according to character boundaries. */
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10282 width = standard_rect.right - standard_rect.left;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10283 height = standard_rect.bottom - standard_rect.top;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10284 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10285 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, height);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10286 ideal_size.h = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, columns);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10287 ideal_size.v = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, rows);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10288
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10289 return ideal_size;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10290 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10291 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10292
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10293 /* 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
10294 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
10295 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
10296 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
10297
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10298 static void
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10299 do_zoom_window (WindowRef w, int zoom_in_or_out)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10300 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10301 Rect zoom_rect, port_rect;
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10302 int width, height;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10303 struct frame *f = mac_window_to_frame (w);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10304 #if TARGET_API_MAC_CARBON
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10305 Point ideal_size = mac_get_ideal_size (f);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10306
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10307 GetWindowBounds (w, kWindowContentRgn, &port_rect);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10308 if (IsWindowInStandardState (w, &ideal_size, &zoom_rect)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10309 && port_rect.left == zoom_rect.left
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10310 && port_rect.top == zoom_rect.top)
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10311 zoom_in_or_out = inZoomIn;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10312 else
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10313 zoom_in_or_out = inZoomOut;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10314
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10315 #ifdef MAC_OS8
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10316 mac_clear_window (f);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10317 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10318 ZoomWindowIdeal (w, zoom_in_or_out, &ideal_size);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10319 #else /* not TARGET_API_MAC_CARBON */
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10320 GrafPtr save_port;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10321 Point top_left;
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10322 int w_title_height, rows;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10323 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10324
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10325 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
10326
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10327 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
10328
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10329 /* 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
10330 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
10331 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
10332 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10333 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
10334 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
10335
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10336 /* 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
10337 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
10338 - (**((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
10339
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10340 /* 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
10341 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
10342 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
10343 InsetRect (&zoom_rect, 8, 4); /* not too tight */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10344
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10345 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
10346 + 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
10347
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10348 /* 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
10349 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
10350 zoom_rect.bottom =
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10351 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
10352
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10353 (**((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
10354 = zoom_rect;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10355 }
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10356
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10357 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
10358
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10359 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
10360 #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
10361
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10362 #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
10363 /* 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
10364 port_rect = w->portRect;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10365 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
10366 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
10367
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10368 mac_handle_size_change (f, width, height);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10369 mac_handle_origin_change (f);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10370 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10371 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10372
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10373 static void
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10374 mac_set_unicode_keystroke_event (code, buf)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10375 UniChar code;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10376 struct input_event *buf;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10377 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10378 int charset_id, c1, c2;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10379
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10380 if (code < 0x80)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10381 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10382 buf->kind = ASCII_KEYSTROKE_EVENT;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10383 buf->code = code;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10384 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10385 else if (code < 0x100)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10386 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10387 if (code < 0xA0)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10388 charset_id = CHARSET_8_BIT_CONTROL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10389 else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10390 charset_id = charset_latin_iso8859_1;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10391 buf->kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10392 buf->code = MAKE_CHAR (charset_id, code, 0);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10393 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10394 else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10395 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10396 if (code < 0x2500)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10397 charset_id = charset_mule_unicode_0100_24ff,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10398 code -= 0x100;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10399 else if (code < 0x33FF)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10400 charset_id = charset_mule_unicode_2500_33ff,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10401 code -= 0x2500;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10402 else if (code >= 0xE000)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10403 charset_id = charset_mule_unicode_e000_ffff,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10404 code -= 0xE000;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10405 c1 = (code / 96) + 32, c2 = (code % 96) + 32;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10406 buf->kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10407 buf->code = MAKE_CHAR (charset_id, c1, c2);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10408 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10409 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10410
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10411 static void
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10412 do_keystroke (action, char_code, key_code, modifiers, timestamp, buf)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10413 EventKind action;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10414 unsigned char char_code;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10415 UInt32 key_code, modifiers;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10416 unsigned long timestamp;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10417 struct input_event *buf;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10418 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10419 static SInt16 last_key_script = -1;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10420 SInt16 current_key_script = GetScriptManagerVariable (smKeyScript);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10421 UInt32 mapped_modifiers = mac_mapped_modifiers (modifiers);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10422
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10423 #ifdef MAC_OSX
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10424 if (mapped_modifiers & kEventKeyModifierFnMask
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10425 && key_code <= 0x7f
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10426 && fn_keycode_to_keycode_table[key_code])
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10427 key_code = fn_keycode_to_keycode_table[key_code];
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10428 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10429
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10430 if (key_code <= 0x7f && keycode_to_xkeysym_table[key_code])
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10431 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10432 buf->kind = NON_ASCII_KEYSTROKE_EVENT;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10433 buf->code = 0xff00 | keycode_to_xkeysym_table[key_code];
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10434 #ifdef MAC_OSX
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10435 if (modifiers & kEventKeyModifierFnMask
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10436 && key_code <= 0x7f
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10437 && fn_keycode_to_keycode_table[key_code] == key_code)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10438 modifiers &= ~kEventKeyModifierFnMask;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10439 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10440 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10441 else if (mapped_modifiers)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10442 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10443 /* translate the keycode back to determine the original key */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10444 #ifdef MAC_OSX
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10445 UCKeyboardLayout *uchr_ptr = NULL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10446 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10447 OSStatus err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10448 KeyboardLayoutRef layout;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10449
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10450 err = KLGetCurrentKeyboardLayout (&layout);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10451 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10452 err = KLGetKeyboardLayoutProperty (layout, kKLuchrData,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10453 (const void **) &uchr_ptr);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10454 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10455 static SInt16 last_key_layout_id = 0;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10456 static Handle uchr_handle = (Handle)-1;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10457 SInt16 current_key_layout_id =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10458 GetScriptVariable (current_key_script, smScriptKeys);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10459
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10460 if (uchr_handle == (Handle)-1
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10461 || last_key_layout_id != current_key_layout_id)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10462 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10463 uchr_handle = GetResource ('uchr', current_key_layout_id);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10464 last_key_layout_id = current_key_layout_id;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10465 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10466 if (uchr_handle)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10467 uchr_ptr = (UCKeyboardLayout *)*uchr_handle;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10468 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10469
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10470 if (uchr_ptr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10471 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10472 OSStatus status;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10473 UInt16 key_action = action - keyDown;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10474 UInt32 modifier_key_state = (modifiers & ~mapped_modifiers) >> 8;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10475 UInt32 keyboard_type = LMGetKbdType ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10476 SInt32 dead_key_state = 0;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10477 UniChar code;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10478 UniCharCount actual_length;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10479
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10480 status = UCKeyTranslate (uchr_ptr, key_code, key_action,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10481 modifier_key_state, keyboard_type,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10482 kUCKeyTranslateNoDeadKeysMask,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10483 &dead_key_state,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10484 1, &actual_length, &code);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10485 if (status == noErr && actual_length == 1)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10486 mac_set_unicode_keystroke_event (code, buf);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10487 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10488 #endif /* MAC_OSX */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10489
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10490 if (buf->kind == NO_EVENT)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10491 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10492 /* This code comes from Keyboard Resource, Appendix C of IM
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10493 - Text. This is necessary since shift is ignored in KCHR
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10494 table translation when option or command is pressed. It
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10495 also does not translate correctly control-shift chars
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10496 like C-% so mask off shift here also. */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10497 /* Mask off modifier keys that are mapped to some Emacs
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10498 modifiers. */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10499 int new_modifiers = modifiers & ~mapped_modifiers;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10500 /* set high byte of keycode to modifier high byte*/
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10501 int new_key_code = key_code | new_modifiers;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10502 Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10503 unsigned long some_state = 0;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10504 UInt32 new_char_code;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10505
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10506 new_char_code = KeyTranslate (kchr_ptr, new_key_code, &some_state);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10507 if (new_char_code == 0)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10508 /* Seems like a dead key. Append up-stroke. */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10509 new_char_code = KeyTranslate (kchr_ptr, new_key_code | 0x80,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10510 &some_state);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10511 if (new_char_code)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10512 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10513 buf->kind = ASCII_KEYSTROKE_EVENT;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10514 buf->code = new_char_code & 0xff;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10515 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10516 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10517 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10518
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10519 if (buf->kind == NO_EVENT)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10520 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10521 buf->kind = ASCII_KEYSTROKE_EVENT;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10522 buf->code = char_code;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10523 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10524
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10525 buf->modifiers = mac_to_emacs_modifiers (modifiers);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10526 buf->modifiers |= (extra_keyboard_modifiers
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10527 & (meta_modifier | alt_modifier
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10528 | hyper_modifier | super_modifier));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10529
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10530 #if TARGET_API_MAC_CARBON
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10531 if (buf->kind == ASCII_KEYSTROKE_EVENT
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10532 && buf->code >= 0x80 && buf->modifiers)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10533 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10534 OSStatus err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10535 TextEncoding encoding = kTextEncodingMacRoman;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10536 TextToUnicodeInfo ttu_info;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10537
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10538 UpgradeScriptInfoToTextEncoding (current_key_script,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10539 kTextLanguageDontCare,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10540 kTextRegionDontCare,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10541 NULL, &encoding);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10542 err = CreateTextToUnicodeInfoByEncoding (encoding, &ttu_info);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10543 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10544 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10545 UniChar code;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10546 Str255 pstr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10547 ByteCount unicode_len;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10548
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10549 pstr[0] = 1;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10550 pstr[1] = buf->code;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10551 err = ConvertFromPStringToUnicode (ttu_info, pstr,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10552 sizeof (UniChar),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10553 &unicode_len, &code);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10554 if (err == noErr && unicode_len == sizeof (UniChar))
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10555 mac_set_unicode_keystroke_event (code, buf);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10556 DisposeTextToUnicodeInfo (&ttu_info);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10557 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10558 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10559 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10560
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10561 if (buf->kind == ASCII_KEYSTROKE_EVENT
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10562 && buf->code >= 0x80
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10563 && last_key_script != current_key_script)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10564 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10565 struct input_event event;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10566
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10567 EVENT_INIT (event);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10568 event.kind = LANGUAGE_CHANGE_EVENT;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10569 event.arg = Qnil;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10570 event.code = current_key_script;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10571 event.timestamp = timestamp;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10572 kbd_buffer_store_event (&event);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10573 last_key_script = current_key_script;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10574 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10575 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10576
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10577 void
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10578 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
10579 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
10580 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
10581 {
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10582 struct input_event buf;
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10583
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10584 EVENT_INIT (buf);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10585
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10586 buf.kind = MAC_APPLE_EVENT;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10587 buf.x = class;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10588 buf.y = id;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10589 XSETFRAME (buf.frame_or_window,
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10590 mac_focus_frame (&one_mac_display_info));
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10591 /* Now that Lisp object allocations are protected by BLOCK_INPUT, it
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10592 is safe to use them during read_socket_hook. */
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10593 buf.arg = mac_aedesc_to_lisp (desc);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10594 kbd_buffer_store_event (&buf);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10595 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10596
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10597 #if TARGET_API_MAC_CARBON
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10598 static OSStatus
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10599 mac_store_event_ref_as_apple_event (class, id, class_key, id_key,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10600 event, num_params, names, types)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10601 AEEventClass class;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10602 AEEventID id;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10603 Lisp_Object class_key, id_key;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10604 EventRef event;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10605 UInt32 num_params;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10606 const EventParamName *names;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10607 const EventParamType *types;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10608 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10609 OSStatus err = eventNotHandledErr;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10610 Lisp_Object binding;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10611
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10612 mac_find_apple_event_spec (class, id, &class_key, &id_key, &binding);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10613 if (!NILP (binding) && !EQ (binding, Qundefined))
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10614 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10615 if (INTEGERP (binding))
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10616 err = XINT (binding);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10617 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10618 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10619 AppleEvent apple_event;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10620 err = create_apple_event_from_event_ref (event, num_params,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10621 names, types,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10622 &apple_event);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10623 if (err == noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10624 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10625 mac_store_apple_event (class_key, id_key, &apple_event);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10626 AEDisposeDesc (&apple_event);
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
10627 mac_wakeup_from_rne ();
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10628 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10629 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10630 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10631
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10632 return err;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10633 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10634
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10635 void
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10636 mac_store_drag_event (window, mouse_pos, modifiers, desc)
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10637 WindowRef window;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10638 Point mouse_pos;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10639 SInt16 modifiers;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10640 const AEDesc *desc;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10641 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10642 struct input_event buf;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10643
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10644 EVENT_INIT (buf);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10645
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10646 buf.kind = DRAG_N_DROP_EVENT;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10647 buf.modifiers = mac_to_emacs_modifiers (modifiers);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10648 buf.timestamp = TickCount () * (1000 / 60);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10649 XSETINT (buf.x, mouse_pos.h);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10650 XSETINT (buf.y, mouse_pos.v);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10651 XSETFRAME (buf.frame_or_window, mac_window_to_frame (window));
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10652 buf.arg = mac_aedesc_to_lisp (desc);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10653 kbd_buffer_store_event (&buf);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10654 }
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10655
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10656 #ifdef MAC_OSX
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10657 OSStatus
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10658 mac_store_service_event (event)
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10659 EventRef event;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10660 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10661 OSStatus err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10662 Lisp_Object id_key;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10663 int num_params;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10664 const EventParamName *names;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10665 const EventParamType *types;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10666 static const EventParamName names_pfm[] =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10667 {kEventParamServiceMessageName, kEventParamServiceUserData};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10668 static const EventParamType types_pfm[] =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10669 {typeCFStringRef, typeCFStringRef};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10670
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10671 switch (GetEventKind (event))
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10672 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10673 case kEventServicePaste:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10674 id_key = Qpaste;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10675 num_params = 0;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10676 names = NULL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10677 types = NULL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10678 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10679
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10680 case kEventServicePerform:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10681 id_key = Qperform;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10682 num_params = sizeof (names_pfm) / sizeof (names_pfm[0]);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10683 names = names_pfm;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10684 types = types_pfm;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10685 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10686
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10687 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10688 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10689 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10690
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10691 err = mac_store_event_ref_as_apple_event (0, 0, Qservice, id_key,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10692 event, num_params,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10693 names, types);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10694
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10695 return err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10696 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10697 #endif /* MAC_OSX */
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10698
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10699 static pascal OSStatus
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10700 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
10701 EventHandlerCallRef next_handler;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10702 EventRef event;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10703 void *data;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10704 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10705 WindowRef wp;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10706 OSStatus err, result = eventNotHandledErr;
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10707 struct frame *f;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10708 UInt32 attributes;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10709 XSizeHints *size_hints;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10710
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10711 err = GetEventParameter (event, kEventParamDirectObject, typeWindowRef,
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10712 NULL, sizeof (WindowRef), NULL, &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
10713 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
10714 return eventNotHandledErr;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10715
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10716 f = mac_window_to_frame (wp);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10717 switch (GetEventKind (event))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10718 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10719 /* -- window refresh events -- */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10720
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10721 case kEventWindowUpdate:
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10722 result = CallNextEventHandler (next_handler, event);
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10723 if (result != eventNotHandledErr)
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10724 break;
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10725
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10726 do_window_update (wp);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10727 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10728 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10729
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10730 /* -- window state change events -- */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10731
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10732 case kEventWindowShowing:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10733 size_hints = FRAME_SIZE_HINTS (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10734 if (!(size_hints->flags & (USPosition | PPosition)))
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10735 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10736 struct frame *sf = SELECTED_FRAME ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10737
82345
328a50c8203c [TARGET_API_MAC_CARBON] (mac_handle_window_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82340
diff changeset
10738 if (!(FRAME_MAC_P (sf) && sf->async_visible))
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10739 RepositionWindow (wp, NULL, kWindowCenterOnMainScreen);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10740 else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10741 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10742 RepositionWindow (wp, FRAME_MAC_WINDOW (sf),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10743 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10744 kWindowCascadeStartAtParentWindowScreen
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10745 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10746 kWindowCascadeOnParentWindowScreen
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10747 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10748 );
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
10749 #if USE_MAC_TOOLBAR
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
10750 /* This is a workaround. RepositionWindow fails to put
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
10751 a window at the cascading position when its parent
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
10752 window has a Carbon HIToolbar. */
82338
8400bd6255ef (mac_handle_window_event) [USE_MAC_TOOLBAR]: Add further workaround
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82336
diff changeset
10753 if ((f->left_pos == sf->left_pos
8400bd6255ef (mac_handle_window_event) [USE_MAC_TOOLBAR]: Add further workaround
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82336
diff changeset
10754 && f->top_pos == sf->top_pos)
8400bd6255ef (mac_handle_window_event) [USE_MAC_TOOLBAR]: Add further workaround
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82336
diff changeset
10755 || (f->left_pos == sf->left_pos + 10 * 2
8400bd6255ef (mac_handle_window_event) [USE_MAC_TOOLBAR]: Add further workaround
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82336
diff changeset
10756 && f->top_pos == sf->top_pos + 32 * 2))
82345
328a50c8203c [TARGET_API_MAC_CARBON] (mac_handle_window_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82340
diff changeset
10757 MoveWindowStructure (wp, sf->left_pos + 10, sf->top_pos + 32);
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
10758 #endif
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10759 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10760 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10761 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10762 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10763
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10764 case kEventWindowHiding:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10765 /* Before unmapping the window, update the WM_SIZE_HINTS
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10766 property to claim that the current position of the window is
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10767 user-specified, rather than program-specified, so that when
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10768 the window is mapped again, it will be placed at the same
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10769 location, without forcing the user to position it by hand
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10770 again (they have already done that once for this window.) */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10771 x_wm_set_size_hint (f, (long) 0, 1);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10772 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10773 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10774
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10775 case kEventWindowShown:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10776 case kEventWindowHidden:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10777 case kEventWindowCollapsed:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10778 case kEventWindowExpanded:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10779 mac_handle_visibility_change (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10780 result = noErr;
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10781 break;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10782
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10783 case kEventWindowBoundsChanging:
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10784 result = CallNextEventHandler (next_handler, event);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10785 if (result != eventNotHandledErr)
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10786 break;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10787
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10788 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
10789 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
10790 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
10791 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10792
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10793 size_hints = FRAME_SIZE_HINTS (f);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10794 if ((attributes & kWindowBoundsChangeUserResize)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10795 && ((size_hints->flags & (PResizeInc | PBaseSize | PMinSize))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10796 == (PResizeInc | PBaseSize | PMinSize)))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10797 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10798 Rect bounds;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10799 int width, height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10800
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10801 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
10802 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
10803 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
10804 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
10805 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10806
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10807 width = bounds.right - bounds.left;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10808 height = bounds.bottom - bounds.top;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10809
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10810 if (width < size_hints->min_width)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10811 width = size_hints->min_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10812 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10813 width = size_hints->base_width
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10814 + (int) ((width - size_hints->base_width)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10815 / (float) size_hints->width_inc + .5)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10816 * size_hints->width_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10817
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10818 if (height < size_hints->min_height)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10819 height = size_hints->min_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10820 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10821 height = size_hints->base_height
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10822 + (int) ((height - size_hints->base_height)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10823 / (float) size_hints->height_inc + .5)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10824 * size_hints->height_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10825
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10826 bounds.right = bounds.left + width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10827 bounds.bottom = bounds.top + height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10828 SetEventParameter (event, kEventParamCurrentBounds,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10829 typeQDRectangle, sizeof (Rect), &bounds);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10830 result = noErr;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10831 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10832 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
10833
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10834 case kEventWindowBoundsChanged:
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10835 err = GetEventParameter (event, kEventParamAttributes, typeUInt32,
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10836 NULL, sizeof (UInt32), NULL, &attributes);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10837 if (err != noErr)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10838 break;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10839
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10840 if (attributes & kWindowBoundsChangeSizeChanged)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10841 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10842 Rect bounds;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10843
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10844 err = GetEventParameter (event, kEventParamCurrentBounds,
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10845 typeQDRectangle, NULL, sizeof (Rect),
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10846 NULL, &bounds);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10847 if (err == noErr)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10848 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10849 int width, height;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10850
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10851 width = bounds.right - bounds.left;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10852 height = bounds.bottom - bounds.top;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10853 mac_handle_size_change (f, width, height);
77795
4632b6698419 [USE_CARBON_EVENTS] (mac_handle_window_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77752
diff changeset
10854 mac_wakeup_from_rne ();
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10855 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10856 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10857
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10858 if (attributes & kWindowBoundsChangeOriginChanged)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10859 mac_handle_origin_change (f);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10860
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10861 result = noErr;
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
10862 break;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10863
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10864 /* -- window action events -- */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10865
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10866 case kEventWindowClose:
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10867 {
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10868 struct input_event buf;
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10869
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10870 EVENT_INIT (buf);
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10871 buf.kind = DELETE_WINDOW_EVENT;
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10872 XSETFRAME (buf.frame_or_window, f);
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10873 buf.arg = Qnil;
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10874 kbd_buffer_store_event (&buf);
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10875 }
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10876 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10877 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10878
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10879 case kEventWindowGetIdealSize:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10880 result = CallNextEventHandler (next_handler, event);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10881 if (result != eventNotHandledErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10882 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10883
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10884 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10885 Point ideal_size = mac_get_ideal_size (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10886
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10887 err = SetEventParameter (event, kEventParamDimensions,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10888 typeQDPoint, sizeof (Point), &ideal_size);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10889 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10890 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10891 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10892 break;
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10893
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10894 #ifdef MAC_OSX
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10895 case kEventWindowToolbarSwitchMode:
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10896 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10897 static const EventParamName names[] = {kEventParamDirectObject,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10898 kEventParamWindowMouseLocation,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10899 kEventParamKeyModifiers,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10900 kEventParamMouseButton,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10901 kEventParamClickCount,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10902 kEventParamMouseChord};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10903 static const EventParamType types[] = {typeWindowRef,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10904 typeQDPoint,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10905 typeUInt32,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10906 typeMouseButton,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10907 typeUInt32,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10908 typeUInt32};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10909 int num_params = sizeof (names) / sizeof (names[0]);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10910
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10911 err = mac_store_event_ref_as_apple_event (0, 0,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10912 Qwindow,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10913 Qtoolbar_switch_mode,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10914 event, num_params,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10915 names, types);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10916 }
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10917 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10918 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10919 break;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10920 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10921
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10922 #if USE_MAC_TSM
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10923 /* -- window focus events -- */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10924
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10925 case kEventWindowFocusAcquired:
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10926 err = mac_tsm_resume ();
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10927 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10928 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10929 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10930
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10931 case kEventWindowFocusRelinquish:
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10932 err = mac_tsm_suspend ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10933 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10934 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10935 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10936 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10937
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10938 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10939 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10940 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10941
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10942 return result;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10943 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10944
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10945 static pascal OSStatus
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10946 mac_handle_application_event (next_handler, event, data)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10947 EventHandlerCallRef next_handler;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10948 EventRef event;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10949 void *data;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10950 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10951 OSStatus err, result = eventNotHandledErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10952
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10953 switch (GetEventKind (event))
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10954 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10955 #if USE_MAC_TSM
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10956 case kEventAppActivated:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10957 err = mac_tsm_resume ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10958 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10959
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10960 case kEventAppDeactivated:
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10961 err = mac_tsm_suspend ();
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10962 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10963 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10964
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10965 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10966 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10967 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10968
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10969 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10970 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10971
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10972 return result;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10973 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10974
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10975 static pascal OSStatus
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10976 mac_handle_keyboard_event (next_handler, event, data)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10977 EventHandlerCallRef next_handler;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10978 EventRef event;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10979 void *data;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10980 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10981 OSStatus err, result = eventNotHandledErr;
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
10982 UInt32 event_kind, key_code, modifiers;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10983 unsigned char char_code;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10984
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10985 event_kind = GetEventKind (event);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10986 switch (event_kind)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10987 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10988 case kEventRawKeyDown:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10989 case kEventRawKeyRepeat:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10990 case kEventRawKeyUp:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10991 /* When using Carbon Events, we need to pass raw keyboard events
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10992 to the TSM ourselves. If TSM handles it, it will pass back
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10993 noErr, otherwise it will pass back "eventNotHandledErr" and
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10994 we can process it normally. */
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
10995 result = CallNextEventHandler (next_handler, event);
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
10996 if (result != eventNotHandledErr)
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
10997 break;
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
10998
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
10999 if (read_socket_inev == NULL)
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11000 break;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11001
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11002 #if USE_MAC_TSM
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11003 if (read_socket_inev->kind != NO_EVENT)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11004 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11005 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11006 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11007 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11008 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11009
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11010 if (event_kind == kEventRawKeyUp)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11011 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11012
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11013 err = GetEventParameter (event, kEventParamKeyMacCharCodes,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11014 typeChar, NULL,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11015 sizeof (char), NULL, &char_code);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11016 if (err != noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11017 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11018
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11019 err = GetEventParameter (event, kEventParamKeyCode,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11020 typeUInt32, NULL,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11021 sizeof (UInt32), NULL, &key_code);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11022 if (err != noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11023 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11024
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11025 err = GetEventParameter (event, kEventParamKeyModifiers,
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11026 typeUInt32, NULL,
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11027 sizeof (UInt32), NULL, &modifiers);
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11028 if (err != noErr)
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11029 break;
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11030
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
11031 do_keystroke ((event_kind == kEventRawKeyDown ? keyDown : autoKey),
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11032 char_code, key_code, modifiers,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11033 ((unsigned long)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11034 (GetEventTime (event) / kEventDurationMillisecond)),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11035 read_socket_inev);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11036 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11037 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11038
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11039 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11040 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11041 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11042
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11043 return result;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11044 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11045
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11046 static pascal OSStatus
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11047 mac_handle_command_event (next_handler, event, data)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11048 EventHandlerCallRef next_handler;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11049 EventRef event;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11050 void *data;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11051 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11052 OSStatus err, result = eventNotHandledErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11053 HICommand command;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11054 static const EventParamName names[] =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11055 {kEventParamDirectObject, kEventParamKeyModifiers};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11056 static const EventParamType types[] =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11057 {typeHICommand, typeUInt32};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11058 int num_params = sizeof (names) / sizeof (names[0]);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11059
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11060 err = GetEventParameter (event, kEventParamDirectObject, typeHICommand,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11061 NULL, sizeof (HICommand), NULL, &command);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11062 if (err != noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11063 return eventNotHandledErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11064
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11065 switch (GetEventKind (event))
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11066 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11067 case kEventCommandProcess:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11068 result = CallNextEventHandler (next_handler, event);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11069 if (result != eventNotHandledErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11070 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11071
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11072 err = GetEventParameter (event, kEventParamDirectObject,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11073 typeHICommand, NULL,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11074 sizeof (HICommand), NULL, &command);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11075
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11076 if (err != noErr || command.commandID == 0)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11077 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11078
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11079 /* A HI command event is mapped to an Apple event whose event
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11080 class symbol is `hi-command' and event ID is its command
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11081 ID. */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11082 err = mac_store_event_ref_as_apple_event (0, command.commandID,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11083 Qhi_command, Qnil,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11084 event, num_params,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11085 names, types);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11086 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11087 result = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11088 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11089
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11090 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11091 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11092 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11093
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11094 return result;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11095 }
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11096
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11097 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
11098 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
11099 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
11100 EventRef event;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11101 void *data;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11102 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11103 OSStatus err, result = eventNotHandledErr;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11104
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11105 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
11106 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11107 case kEventMouseWheelMoved:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11108 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11109 WindowRef wp;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11110 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
11111 EventMouseWheelAxis axis;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11112 SInt32 delta;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11113 Point point;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11114
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11115 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
11116 if (result != eventNotHandledErr || read_socket_inev == NULL)
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11117 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11118
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11119 f = mac_focus_frame (&one_mac_display_info);
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11120
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
11121 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
11122 NULL, sizeof (WindowRef), NULL, &wp);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11123 if (err != noErr
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11124 || wp != FRAME_MAC_WINDOW (f))
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11125 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11126
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
11127 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
11128 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
11129 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
11130 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
11131 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11132
76437
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11133 err = GetEventParameter (event, kEventParamMouseLocation,
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11134 typeQDPoint, NULL, sizeof (Point),
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11135 NULL, &point);
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11136 if (err != noErr)
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11137 break;
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11138
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11139 point.h -= f->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11140 point.v -= f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f);
76437
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11141 if (point.h < 0 || point.v < 0
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11142 || EQ (window_from_coordinates (f, point.h, point.v, 0, 0, 0, 1),
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11143 f->tool_bar_window))
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11144 break;
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11145
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
11146 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
11147 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
11148 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
11149 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
11150 break;
76437
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11151
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11152 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
11153 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
11154 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
11155 (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
11156 | ((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
11157 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
11158 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
11159 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
11160
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11161 result = noErr;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11162 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11163 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11164
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11165 default:
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11166 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11167 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11168
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11169 return result;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11170 }
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11171
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11172 #if USE_MAC_TSM
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11173 static pascal OSStatus
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11174 mac_handle_text_input_event (next_handler, event, data)
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11175 EventHandlerCallRef next_handler;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11176 EventRef event;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11177 void *data;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11178 {
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11179 OSStatus err, result;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11180 Lisp_Object id_key = Qnil;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11181 int num_params;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
11182 const EventParamName *names;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
11183 const EventParamType *types;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11184 static UInt32 seqno_uaia = 0;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
11185 static const EventParamName names_uaia[] =
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11186 {kEventParamTextInputSendComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11187 kEventParamTextInputSendRefCon,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11188 kEventParamTextInputSendSLRec,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11189 kEventParamTextInputSendFixLen,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11190 kEventParamTextInputSendText,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11191 kEventParamTextInputSendUpdateRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11192 kEventParamTextInputSendHiliteRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11193 kEventParamTextInputSendClauseRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11194 kEventParamTextInputSendPinRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11195 kEventParamTextInputSendTextServiceEncoding,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11196 kEventParamTextInputSendTextServiceMacEncoding,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11197 EVENT_PARAM_TEXT_INPUT_SEQUENCE_NUMBER};
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
11198 static const EventParamType types_uaia[] =
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11199 {typeComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11200 typeLongInteger,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11201 typeIntlWritingCode,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11202 typeLongInteger,
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11203 #ifdef MAC_OSX
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11204 typeUnicodeText,
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11205 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11206 typeChar,
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11207 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11208 typeTextRangeArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11209 typeTextRangeArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11210 typeOffsetArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11211 typeTextRange,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11212 typeUInt32,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11213 typeUInt32,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11214 typeUInt32};
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
11215 static const EventParamName names_ufke[] =
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11216 {kEventParamTextInputSendComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11217 kEventParamTextInputSendRefCon,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11218 kEventParamTextInputSendSLRec,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11219 kEventParamTextInputSendText};
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
11220 static const EventParamType types_ufke[] =
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11221 {typeComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11222 typeLongInteger,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11223 typeIntlWritingCode,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11224 typeUnicodeText};
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11225
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11226 result = CallNextEventHandler (next_handler, event);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11227 if (result != eventNotHandledErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11228 return result;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11229
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11230 switch (GetEventKind (event))
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11231 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11232 case kEventTextInputUpdateActiveInputArea:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11233 id_key = Qupdate_active_input_area;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11234 num_params = sizeof (names_uaia) / sizeof (names_uaia[0]);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11235 names = names_uaia;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11236 types = types_uaia;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11237 SetEventParameter (event, EVENT_PARAM_TEXT_INPUT_SEQUENCE_NUMBER,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11238 typeUInt32, sizeof (UInt32), &seqno_uaia);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11239 seqno_uaia++;
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11240 result = noErr;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11241 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11242
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11243 case kEventTextInputUnicodeForKeyEvent:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11244 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11245 EventRef kbd_event;
76038
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11246 UInt32 actual_size, modifiers;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11247
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11248 err = GetEventParameter (event, kEventParamTextInputSendKeyboardEvent,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11249 typeEventRef, NULL, sizeof (EventRef), NULL,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11250 &kbd_event);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11251 if (err == noErr)
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11252 err = GetEventParameter (kbd_event, kEventParamKeyModifiers,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11253 typeUInt32, NULL,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11254 sizeof (UInt32), NULL, &modifiers);
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
11255 if (err == noErr && mac_mapped_modifiers (modifiers))
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
11256 /* There're mapped modifier keys. Process it in
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11257 do_keystroke. */
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11258 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11259 if (err == noErr)
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11260 err = GetEventParameter (kbd_event, kEventParamKeyUnicodes,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11261 typeUnicodeText, NULL, 0, &actual_size,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11262 NULL);
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11263 if (err == noErr && actual_size == sizeof (UniChar))
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11264 {
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11265 UniChar code;
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11266
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11267 err = GetEventParameter (kbd_event, kEventParamKeyUnicodes,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11268 typeUnicodeText, NULL,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11269 sizeof (UniChar), NULL, &code);
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11270 if (err == noErr && code < 0x80)
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11271 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11272 /* ASCII character. Process it in do_keystroke. */
71241
11061a67f09a [USE_MAC_TSM] (mac_handle_text_input_event): Exclude 0x7f from ASCII range.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71178
diff changeset
11273 if (read_socket_inev && code >= 0x20 && code <= 0x7e)
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11274 {
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11275 UInt32 key_code;
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11276
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11277 err = GetEventParameter (kbd_event, kEventParamKeyCode,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11278 typeUInt32, NULL, sizeof (UInt32),
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11279 NULL, &key_code);
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11280 if (!(err == noErr && key_code <= 0x7f
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11281 && keycode_to_xkeysym_table [key_code]))
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11282 {
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11283 struct frame *f =
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11284 mac_focus_frame (&one_mac_display_info);
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11285
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11286 read_socket_inev->kind = ASCII_KEYSTROKE_EVENT;
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11287 read_socket_inev->code = code;
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11288 read_socket_inev->modifiers =
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
11289 mac_to_emacs_modifiers (modifiers);
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
11290 read_socket_inev->modifiers |=
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11291 (extra_keyboard_modifiers
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11292 & (meta_modifier | alt_modifier
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11293 | hyper_modifier | super_modifier));
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11294 XSETFRAME (read_socket_inev->frame_or_window, f);
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11295 }
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11296 }
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11297 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11298 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11299 }
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11300 if (err == noErr)
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11301 {
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11302 /* Non-ASCII keystrokes without mapped modifiers are
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11303 processed at the Lisp level. */
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11304 id_key = Qunicode_for_key_event;
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11305 num_params = sizeof (names_ufke) / sizeof (names_ufke[0]);
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11306 names = names_ufke;
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11307 types = types_ufke;
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11308 result = noErr;
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11309 }
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11310 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11311 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11312
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11313 case kEventTextInputOffsetToPos:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11314 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11315 struct frame *f;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11316 struct window *w;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11317 Point p;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11318
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11319 if (!OVERLAYP (Vmac_ts_active_input_overlay))
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11320 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11321
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11322 /* Strictly speaking, this is not always correct because
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11323 previous events may change some states about display. */
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11324 if (!NILP (Foverlay_get (Vmac_ts_active_input_overlay, Qbefore_string)))
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11325 {
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11326 /* Active input area is displayed around the current point. */
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11327 f = SELECTED_FRAME ();
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11328 w = XWINDOW (f->selected_window);
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11329 }
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11330 else if (WINDOWP (echo_area_window))
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11331 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11332 /* Active input area is displayed in the echo area. */
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11333 w = XWINDOW (echo_area_window);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11334 f = WINDOW_XFRAME (w);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11335 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11336 else
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11337 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11338
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11339 p.h = (WINDOW_TO_FRAME_PIXEL_X (w, w->cursor.x)
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11340 + WINDOW_LEFT_FRINGE_WIDTH (w)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11341 + f->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f));
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11342 p.v = (WINDOW_TO_FRAME_PIXEL_Y (w, w->cursor.y)
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11343 + FONT_BASE (FRAME_FONT (f))
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11344 + f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f));
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11345 err = SetEventParameter (event, kEventParamTextInputReplyPoint,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11346 typeQDPoint, sizeof (typeQDPoint), &p);
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11347 if (err == noErr)
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11348 result = noErr;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11349 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11350 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11351
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11352 default:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11353 abort ();
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11354 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11355
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11356 if (!NILP (id_key))
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11357 err = mac_store_event_ref_as_apple_event (0, 0, Qtext_input, id_key,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11358 event, num_params,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11359 names, types);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11360 return result;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11361 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11362 #endif
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11363 #endif /* TARGET_API_MAC_CARBON */
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11364
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11365
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
11366 OSStatus
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11367 install_window_handler (window)
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11368 WindowRef window;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11369 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
11370 OSStatus err = noErr;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11371
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11372 #if TARGET_API_MAC_CARBON
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11373 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11374 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11375 static const EventTypeSpec specs[] =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11376 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11377 /* -- window refresh events -- */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11378 {kEventClassWindow, kEventWindowUpdate},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11379 /* -- window state change events -- */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11380 {kEventClassWindow, kEventWindowShowing},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11381 {kEventClassWindow, kEventWindowHiding},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11382 {kEventClassWindow, kEventWindowShown},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11383 {kEventClassWindow, kEventWindowHidden},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11384 {kEventClassWindow, kEventWindowCollapsed},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11385 {kEventClassWindow, kEventWindowExpanded},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11386 {kEventClassWindow, kEventWindowBoundsChanging},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11387 {kEventClassWindow, kEventWindowBoundsChanged},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11388 /* -- window action events -- */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11389 {kEventClassWindow, kEventWindowClose},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11390 {kEventClassWindow, kEventWindowGetIdealSize},
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11391 #ifdef MAC_OSX
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11392 {kEventClassWindow, kEventWindowToolbarSwitchMode},
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11393 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11394 #if USE_MAC_TSM
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11395 /* -- window focus events -- */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11396 {kEventClassWindow, kEventWindowFocusAcquired},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11397 {kEventClassWindow, kEventWindowFocusRelinquish},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11398 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11399 };
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11400 static EventHandlerUPP handle_window_eventUPP = NULL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11401
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11402 if (handle_window_eventUPP == NULL)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11403 handle_window_eventUPP = NewEventHandlerUPP (mac_handle_window_event);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11404
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11405 err = InstallWindowEventHandler (window, handle_window_eventUPP,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11406 GetEventTypeCount (specs),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11407 specs, NULL, NULL);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11408 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11409 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11410
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
11411 if (err == noErr)
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11412 err = install_drag_handler (window);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11413
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
11414 return err;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11415 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11416
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
11417 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
11418 remove_window_handler (window)
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11419 WindowRef window;
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
11420 {
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11421 remove_drag_handler (window);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11422 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11423
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11424 #if TARGET_API_MAC_CARBON
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11425 static OSStatus
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11426 install_application_handler ()
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11427 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11428 OSStatus err = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11429
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11430 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11431 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11432 static const EventTypeSpec specs[] = {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11433 #if USE_MAC_TSM
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11434 {kEventClassApplication, kEventAppActivated},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11435 {kEventClassApplication, kEventAppDeactivated},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11436 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11437 };
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11438
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11439 err = InstallApplicationEventHandler (NewEventHandlerUPP
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11440 (mac_handle_application_event),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11441 GetEventTypeCount (specs),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11442 specs, NULL, NULL);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11443 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11444
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11445 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11446 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11447 static const EventTypeSpec specs[] =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11448 {{kEventClassKeyboard, kEventRawKeyDown},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11449 {kEventClassKeyboard, kEventRawKeyRepeat},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11450 {kEventClassKeyboard, kEventRawKeyUp}};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11451
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11452 err = InstallApplicationEventHandler (NewEventHandlerUPP
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11453 (mac_handle_keyboard_event),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11454 GetEventTypeCount (specs),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11455 specs, NULL, NULL);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11456 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11457
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11458 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11459 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11460 static const EventTypeSpec specs[] =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11461 {{kEventClassCommand, kEventCommandProcess}};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11462
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11463 err = InstallApplicationEventHandler (NewEventHandlerUPP
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11464 (mac_handle_command_event),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11465 GetEventTypeCount (specs),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11466 specs, NULL, NULL);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11467 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11468
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11469 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11470 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11471 static const EventTypeSpec specs[] =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11472 {{kEventClassMouse, kEventMouseWheelMoved}};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11473
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11474 err = InstallApplicationEventHandler (NewEventHandlerUPP
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11475 (mac_handle_mouse_event),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11476 GetEventTypeCount (specs),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11477 specs, NULL, NULL);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11478 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11479
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11480 #if USE_MAC_TSM
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11481 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11482 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11483 static const EventTypeSpec spec[] =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11484 {{kEventClassTextInput, kEventTextInputUpdateActiveInputArea},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11485 {kEventClassTextInput, kEventTextInputUnicodeForKeyEvent},
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11486 {kEventClassTextInput, kEventTextInputOffsetToPos}};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11487
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11488 err = InstallApplicationEventHandler (NewEventHandlerUPP
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11489 (mac_handle_text_input_event),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11490 GetEventTypeCount (spec),
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11491 spec, NULL, NULL);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11492 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11493 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11494
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11495 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11496 err = install_menu_target_item_handler ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11497
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11498 #ifdef MAC_OSX
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11499 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11500 err = install_service_handler ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11501 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11502
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11503 return err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11504 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11505 #endif
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11506
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11507 static pascal void
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11508 mac_handle_dm_notification (event)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11509 AppleEvent *event;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11510 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11511 mac_screen_config_changed = 1;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11512 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11513
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11514 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11515 static void
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11516 mac_handle_cg_display_reconfig (display, flags, user_info)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11517 CGDirectDisplayID display;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11518 CGDisplayChangeSummaryFlags flags;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11519 void *user_info;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11520 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11521 mac_screen_config_changed = 1;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11522 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11523 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11524
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11525 static OSErr
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11526 init_dm_notification_handler ()
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11527 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11528 OSErr err = noErr;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11529
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11530 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11531 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11532 if (CGDisplayRegisterReconfigurationCallback != NULL)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11533 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11534 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11535 CGDisplayRegisterReconfigurationCallback (mac_handle_cg_display_reconfig,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11536 NULL);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11537 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11538 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11539 else /* CGDisplayRegisterReconfigurationCallback == NULL */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11540 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11541 #endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11542 #if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11543 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11544 static DMNotificationUPP handle_dm_notificationUPP = NULL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11545 ProcessSerialNumber psn;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11546
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11547 if (handle_dm_notificationUPP == NULL)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11548 handle_dm_notificationUPP =
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11549 NewDMNotificationUPP (mac_handle_dm_notification);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11550
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11551 err = GetCurrentProcess (&psn);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11552 if (err == noErr)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11553 err = DMRegisterNotifyProc (handle_dm_notificationUPP, &psn);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11554 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11555 #endif
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11556
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11557 return err;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11558 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11559
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11560 static void
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11561 mac_get_screen_info (dpyinfo)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11562 struct mac_display_info *dpyinfo;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11563 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11564 #ifdef MAC_OSX
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11565 /* HasDepth returns true if it is possible to have a 32 bit display,
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11566 but this may not be what is actually used. Mac OSX can do better. */
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11567 dpyinfo->color_p = CGDisplaySamplesPerPixel (kCGDirectMainDisplay) > 1;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11568 dpyinfo->n_planes = CGDisplayBitsPerPixel (kCGDirectMainDisplay);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11569 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11570 CGDisplayErr err;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11571 CGDisplayCount ndisps;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11572 CGDirectDisplayID *displays;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11573
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11574 err = CGGetActiveDisplayList (0, NULL, &ndisps);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11575 if (err == noErr)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11576 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11577 displays = alloca (sizeof (CGDirectDisplayID) * ndisps);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11578 err = CGGetActiveDisplayList (ndisps, displays, &ndisps);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11579 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11580 if (err == noErr)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11581 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11582 CGRect bounds = CGRectZero;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11583
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11584 while (ndisps-- > 0)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11585 bounds = CGRectUnion (bounds, CGDisplayBounds (displays[ndisps]));
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11586 dpyinfo->height = CGRectGetHeight (bounds);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11587 dpyinfo->width = CGRectGetWidth (bounds);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11588 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11589 else
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11590 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11591 dpyinfo->height = CGDisplayPixelsHigh (kCGDirectMainDisplay);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11592 dpyinfo->width = CGDisplayPixelsWide (kCGDirectMainDisplay);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11593 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11594 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11595 #else /* !MAC_OSX */
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11596 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11597 GDHandle gdh = GetMainDevice ();
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11598 Rect rect = (**gdh).gdRect;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11599
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11600 dpyinfo->color_p = TestDeviceAttribute (gdh, gdDevType);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11601 for (dpyinfo->n_planes = 32; dpyinfo->n_planes > 0; dpyinfo->n_planes >>= 1)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11602 if (HasDepth (gdh, dpyinfo->n_planes, gdDevType, dpyinfo->color_p))
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11603 break;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11604
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11605 for (gdh = DMGetFirstScreenDevice (dmOnlyActiveDisplays); gdh;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11606 gdh = DMGetNextScreenDevice (gdh, dmOnlyActiveDisplays))
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11607 UnionRect (&rect, &(**gdh).gdRect, &rect);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11608
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11609 dpyinfo->height = rect.bottom - rect.top;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11610 dpyinfo->width = rect.right - rect.left;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11611 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11612 #endif /* !MAC_OSX */
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11613 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11614
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11615
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11616 #if __profile__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11617 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11618 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
11619 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11620 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
11621 ProfilerTerm ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11622 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11623 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11624
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11625 /* 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
11626 (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
11627 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
11628 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
11629 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
11630 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
11631 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
11632 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
11633 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
11634 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
11635 (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
11636 (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
11637 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
11638
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
11639 #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
11640 #undef main
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11641 int
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11642 main (void)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11643 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11644 #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
11645 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
11646 exit(1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11647 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11648
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11649 #if __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11650 /* set creator and type for files created by MSL */
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
11651 _fcreator = MAC_EMACS_CREATOR_CODE;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11652 _ftype = 'TEXT';
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11653 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11654
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11655 do_init_managers ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11656
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11657 do_get_menus ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11658
53651
c7d570b7ba42 (main) [USE_LSB_TAG]: Don't range check the ram.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53606
diff changeset
11659 #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
11660 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
11661 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11662
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11663 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
11664
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11665 init_environ ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11666
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
11667 init_coercion_handler ();
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
11668
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11669 initialize_applescript ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11670
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11671 init_apple_event_handler ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11672
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11673 init_dm_notification_handler ();
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11674
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11675 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11676 char **argv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11677 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
11678
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11679 /* 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
11680 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
11681 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
11682 argc++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11683
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11684 /* 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
11685 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
11686
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11687 #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
11688 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
11689 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11690
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11691 /* 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
11692 (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
11693 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11694
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11695 /* 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
11696 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11697 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11698 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11699
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11700 #if !TARGET_API_MAC_CARBON
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11701 static RgnHandle mouse_region = NULL;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11702
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11703 Boolean
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11704 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
11705 EventRecord *er;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11706 UInt32 sleep_time;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11707 Boolean dequeue;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11708 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11709 static EventRecord er_buf = {nullEvent};
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11710 UInt32 target_tick, current_tick;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11711 EventMask event_mask;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11712
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11713 if (mouse_region == NULL)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11714 mouse_region = NewRgn ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11715
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11716 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
11717 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
11718 event_mask -= highLevelEventMask;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11719
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11720 current_tick = TickCount ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11721 target_tick = current_tick + sleep_time;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11722
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11723 if (er_buf.what == nullEvent)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11724 while (!WaitNextEvent (event_mask, &er_buf,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11725 target_tick - current_tick, mouse_region))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11726 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11727 current_tick = TickCount ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11728 if (target_tick <= current_tick)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11729 return false;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11730 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11731
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11732 *er = er_buf;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11733 if (dequeue)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11734 er_buf.what = nullEvent;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11735 return true;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11736 }
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11737 #endif /* not TARGET_API_MAC_CARBON */
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11738
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11739 #if TARGET_API_MAC_CARBON
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11740 OSStatus
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11741 mac_post_mouse_moved_event ()
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11742 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11743 EventRef event = NULL;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11744 OSStatus err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11745
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11746 err = CreateEvent (NULL, kEventClassMouse, kEventMouseMoved, 0,
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11747 kEventAttributeNone, &event);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11748 if (err == noErr)
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11749 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11750 Point mouse_pos;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11751
77141
a2c0f9d173e8 [TARGET_API_MAC_CARBON] (mac_post_mouse_moved_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76746
diff changeset
11752 GetGlobalMouse (&mouse_pos);
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11753 err = SetEventParameter (event, kEventParamMouseLocation, typeQDPoint,
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11754 sizeof (Point), &mouse_pos);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11755 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11756 if (err == noErr)
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11757 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11758 UInt32 modifiers = GetCurrentKeyModifiers ();
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11759
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11760 err = SetEventParameter (event, kEventParamKeyModifiers, typeUInt32,
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11761 sizeof (UInt32), &modifiers);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11762 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11763 if (err == noErr)
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11764 err = PostEventToQueue (GetCurrentEventQueue (), event,
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11765 kEventPriorityStandard);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11766 if (event)
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11767 ReleaseEvent (event);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11768
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11769 return err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11770 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11771 #endif
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11772
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11773 /* 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
11774 user. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11775 int
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11776 XTread_socket (sd, expected, hold_quit)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11777 int sd, expected;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11778 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
11779 {
88d1b7a60637 (XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit arg.
Kim F. Storm <storm@cua.dk>
parents: 54150
diff changeset
11780 struct input_event inev;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11781 int count = 0;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11782 #if TARGET_API_MAC_CARBON
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11783 EventRef eventRef;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11784 EventTargetRef toolbox_dispatcher;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11785 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11786 EventRecord er;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11787 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
11788
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11789 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
11790 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11791 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
11792 return -1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11793 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11794
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11795 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
11796 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11797
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11798 /* 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
11799 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
11800
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
11801 ++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
11802
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11803 #if TARGET_API_MAC_CARBON
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11804 toolbox_dispatcher = GetEventDispatcherTarget ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11805
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
11806 while (
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
11807 #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
11808 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
11809 #endif
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
11810 !ReceiveNextEvent (0, NULL, kEventDurationNoWait,
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11811 kEventRemoveFromQueue, &eventRef))
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11812 #else /* !TARGET_API_MAC_CARBON */
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11813 while (mac_wait_next_event (&er, 0, true))
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11814 #endif /* !TARGET_API_MAC_CARBON */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11815 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11816 int do_help = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11817 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
11818 unsigned long timestamp;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11819
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11820 EVENT_INIT (inev);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11821 inev.kind = NO_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11822 inev.arg = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11823
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11824 #if TARGET_API_MAC_CARBON
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11825 timestamp = GetEventTime (eventRef) / kEventDurationMillisecond;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11826
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11827 if (!mac_convert_event_ref (eventRef, &er))
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11828 goto OTHER;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11829 #else /* !TARGET_API_MAC_CARBON */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11830 timestamp = er.when * (1000 / 60); /* ticks to milliseconds */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11831 #endif /* !TARGET_API_MAC_CARBON */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11832
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11833 switch (er.what)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11834 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11835 case mouseDown:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11836 case mouseUp:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11837 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11838 WindowRef 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
11839 ControlPartCode part_code;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11840 int tool_bar_p = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11841
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11842 #if TARGET_API_MAC_CARBON
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11843 OSStatus err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11844
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11845 /* 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
11846 buttons to the correct handler. */
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11847 read_socket_inev = &inev;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11848 err = SendEventToEventTarget (eventRef, toolbox_dispatcher);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11849 read_socket_inev = NULL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11850 if (err != eventNotHandledErr)
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11851 break;
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11852 #endif
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
11853 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
11854
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11855 if (dpyinfo->grabbed && last_mouse_frame
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11856 && FRAME_LIVE_P (last_mouse_frame))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11857 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11858 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
11859 part_code = inContent;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11860 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11861 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11862 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11863 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
11864 if (tip_window && window_ptr == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11865 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11866 HideWindow (tip_window);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11867 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
11868 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11869 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11870
66181
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
11871 if (er.what != mouseDown &&
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
11872 (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
11873 break;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11874
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11875 switch (part_code)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11876 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11877 case inMenuBar:
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11878 f = mac_focus_frame (dpyinfo);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11879 saved_menu_event_location = er.where;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11880 inev.kind = MENU_BAR_ACTIVATE_EVENT;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11881 XSETFRAME (inev.frame_or_window, f);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11882 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11883
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11884 case inContent:
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11885 if (
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11886 #if TARGET_API_MAC_CARBON
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11887 FrontNonFloatingWindow ()
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11888 #else
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11889 FrontWindow ()
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11890 #endif
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
11891 != window_ptr
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
11892 || (mac_window_to_frame (window_ptr)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
11893 != dpyinfo->x_focus_frame))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11894 SelectWindow (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11895 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11896 {
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
11897 ControlPartCode control_part_code;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11898 ControlRef ch;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11899 Point mouse_loc;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11900 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11901 ControlKind control_kind;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11902 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11903
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11904 f = mac_window_to_frame (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11905 /* convert to local coordinates of new window */
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11906 mouse_loc.h = (er.where.h
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11907 - (f->left_pos
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11908 + FRAME_OUTER_TO_INNER_DIFF_X (f)));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11909 mouse_loc.v = (er.where.v
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11910 - (f->top_pos
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11911 + FRAME_OUTER_TO_INNER_DIFF_Y (f)));
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11912 #if TARGET_API_MAC_CARBON
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11913 ch = FindControlUnderMouse (mouse_loc, window_ptr,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11914 &control_part_code);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11915 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11916 if (ch)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11917 GetControlKind (ch, &control_kind);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11918 #endif
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11919 #else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11920 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
11921 &ch);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11922 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11923
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11924 #if TARGET_API_MAC_CARBON
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11925 inev.code = mac_get_mouse_btn (eventRef);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11926 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
11927 #else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11928 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
11929 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
11930 #endif
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11931 XSETINT (inev.x, mouse_loc.h);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11932 XSETINT (inev.y, mouse_loc.v);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11933
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
11934 if ((dpyinfo->grabbed && tracked_scroll_bar)
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
11935 || (ch != 0
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11936 #ifndef USE_TOOLKIT_SCROLL_BARS
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
11937 /* control_part_code becomes kControlNoPart if
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
11938 a progress indicator is clicked. */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
11939 && control_part_code != kControlNoPart
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11940 #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
11941 #ifdef MAC_OSX
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
11942 && control_kind.kind == kControlKindScrollBar
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11943 #endif /* MAC_OSX */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11944 #endif /* USE_TOOLKIT_SCROLL_BARS */
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
11945 ))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11946 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11947 struct scroll_bar *bar;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11948
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11949 if (dpyinfo->grabbed && tracked_scroll_bar)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11950 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11951 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
11952 #ifndef USE_TOOLKIT_SCROLL_BARS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11953 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
11954 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11955 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11956 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11957 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
11958 #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
11959 /* 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
11960 for toolkit scroll bars. */
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
11961 if (inev.modifiers & ctrl_modifier)
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11962 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
11963 &er, &inev);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11964 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
11965 x_scroll_bar_handle_press (bar, control_part_code,
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
11966 mouse_loc, &inev);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11967 else
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11968 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
11969 #else /* not USE_TOOLKIT_SCROLL_BARS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11970 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
11971 &er, &inev);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11972 if (er.what == mouseDown
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11973 && control_part_code == kControlIndicatorPart)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11974 tracked_scroll_bar = bar;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11975 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11976 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
11977 #endif /* not USE_TOOLKIT_SCROLL_BARS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11978 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11979 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11980 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11981 Lisp_Object window;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11982 int x = mouse_loc.h;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11983 int y = mouse_loc.v;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11984
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11985 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
11986 if (EQ (window, f->tool_bar_window))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11987 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11988 if (er.what == mouseDown)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11989 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
11990 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11991 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
11992 inev.modifiers);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11993 tool_bar_p = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11994 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11995 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11996 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11997 XSETFRAME (inev.frame_or_window, f);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11998 inev.kind = MOUSE_CLICK_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11999 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12000 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12001
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12002 if (er.what == mouseDown)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12003 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12004 dpyinfo->grabbed |= (1 << inev.code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12005 last_mouse_frame = f;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12006
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12007 if (!tool_bar_p)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12008 last_tool_bar_item = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12009 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12010 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12011 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
12012 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
12013 /* 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
12014 previously pressed, that would be because
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12015 of multi-button emulation. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12016 dpyinfo->grabbed = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12017 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12018 dpyinfo->grabbed &= ~(1 << inev.code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12019 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12020
66181
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
12021 /* 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
12022 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
12023 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
12024 ButtonPress. */
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
12025 if (f != 0)
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
12026 f->mouse_moved = 0;
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
12027
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12028 #ifdef USE_TOOLKIT_SCROLL_BARS
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
12029 if (inev.kind == MOUSE_CLICK_EVENT
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
12030 || (inev.kind == SCROLL_BAR_CLICK_EVENT
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
12031 && (inev.modifiers & ctrl_modifier)))
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12032 #endif
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12033 switch (er.what)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12034 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12035 case mouseDown:
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12036 inev.modifiers |= down_modifier;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12037 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12038 case mouseUp:
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12039 inev.modifiers |= up_modifier;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12040 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12041 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12042 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12043 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12044
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
12045 case inDrag:
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
12046 #if TARGET_API_MAC_CARBON
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
12047 case inProxyIcon:
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
12048 if (IsWindowPathSelectClick (window_ptr, &er))
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
12049 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
12050 WindowPathSelect (window_ptr, NULL, NULL);
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
12051 break;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
12052 }
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
12053 if (part_code == inProxyIcon
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
12054 && (TrackWindowProxyDrag (window_ptr, er.where)
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
12055 != errUserWantsToDragWindow))
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
12056 break;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
12057 DragWindow (window_ptr, er.where, NULL);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12058 #else /* not TARGET_API_MAC_CARBON */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12059 DragWindow (window_ptr, er.where, &qd.screenBits.bounds);
56271
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
12060 /* Update the frame parameters. */
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
12061 {
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
12062 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
12063
56271
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
12064 if (f && !f->async_iconified)
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
12065 mac_handle_origin_change (f);
56271
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
12066 }
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12067 #endif /* not TARGET_API_MAC_CARBON */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12068 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12069
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12070 case inGoAway:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12071 if (TrackGoAway (window_ptr, er.where))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12072 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12073 inev.kind = DELETE_WINDOW_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12074 XSETFRAME (inev.frame_or_window,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12075 mac_window_to_frame (window_ptr));
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12076 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12077 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12078
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12079 /* window resize handling added --ben */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12080 case inGrow:
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
12081 do_grow_window (window_ptr, &er);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
12082 break;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12083
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12084 /* window zoom handling added --ben */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12085 case inZoomIn:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12086 case inZoomOut:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12087 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
12088 do_zoom_window (window_ptr, part_code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12089 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12090
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12091 #if USE_MAC_TOOLBAR
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12092 case inStructure:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12093 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12094 OSStatus err;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12095 HIViewRef ch;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12096
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12097 err = HIViewGetViewForMouseEvent (HIViewGetRoot (window_ptr),
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12098 eventRef, &ch);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12099 /* This doesn't work on Mac OS X 10.2. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12100 if (err == noErr)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12101 HIViewClick (ch, eventRef);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12102 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12103 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12104 #endif /* USE_MAC_TOOLBAR */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12105
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12106 default:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12107 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12108 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12109 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12110 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12111
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12112 #if !TARGET_API_MAC_CARBON
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12113 case updateEvt:
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12114 do_window_update ((WindowRef) er.message);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12115 break;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12116 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12117
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12118 case osEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12119 switch ((er.message >> 24) & 0x000000FF)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12120 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12121 case mouseMovedMessage:
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12122 #if !TARGET_API_MAC_CARBON
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12123 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
12124 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
12125 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12126 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
12127 help_echo_string = Qnil;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12128
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12129 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
12130 && 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
12131 f = last_mouse_frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12132 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12133 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
12134
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12135 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
12136 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12137 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
12138 clear_mouse_face (dpyinfo);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12139 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12140
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12141 if (f)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12142 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12143 WindowRef wp = FRAME_MAC_WINDOW (f);
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12144 Point mouse_pos;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12145
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12146 mouse_pos.h = (er.where.h
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12147 - (f->left_pos
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12148 + FRAME_OUTER_TO_INNER_DIFF_X (f)));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12149 mouse_pos.v = (er.where.v
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12150 - (f->top_pos
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12151 + FRAME_OUTER_TO_INNER_DIFF_Y (f)));
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12152 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
12153 #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
12154 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
12155 mouse_pos, &inev);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12156 #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
12157 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
12158 mouse_pos.v
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12159 - 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
12160 er.when * (1000 / 60));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12161 #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
12162 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12163 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12164 /* Generate SELECT_WINDOW_EVENTs when needed. */
72736
f6b18b9949d1 * xdisp.c (mouse_autoselect_window): Removed.
Chong Yidong <cyd@stupidchicken.com>
parents: 72706
diff changeset
12165 if (!NILP (Vmouse_autoselect_window))
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12166 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12167 Lisp_Object window;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12168
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12169 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
12170 mouse_pos.h,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12171 mouse_pos.v,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12172 0, 0, 0, 0);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12173
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12174 /* 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
12175 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
12176 event was not in it. Minibuffer window
78501
1677cf1c2509 Replace `iff' in comments.
Glenn Morris <rgm@gnu.org>
parents: 78260
diff changeset
12177 will be selected only when it is active. */
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12178 if (WINDOWP (window)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12179 && !EQ (window, last_window)
78986
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12180 && !EQ (window, selected_window)
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12181 /* For click-to-focus window managers
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12182 create event iff we don't leave the
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12183 selected frame. */
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12184 && (focus_follows_mouse
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12185 || (EQ (XWINDOW (window)->frame,
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12186 XWINDOW (selected_window)->frame))))
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12187 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12188 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
12189 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
12190 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12191
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12192 last_window=window;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12193 }
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
12194 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
12195 help_echo_string = previous_help_echo_string;
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12196 #if USE_MAC_TOOLBAR
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12197 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12198 mac_tool_bar_note_mouse_movement (f, eventRef);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12199 #endif
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12200 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12201 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12202
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12203 /* If the contents of the global variable
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12204 help_echo_string has changed, generate a
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12205 HELP_EVENT. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12206 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
12207 do_help = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12208 break;
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12209
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12210 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12211 goto OTHER;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12212 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12213 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12214
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12215 case activateEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12216 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12217 WindowRef window_ptr = (WindowRef) er.message;
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12218 OSErr err;
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12219 ControlRef root_control;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12220
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12221 if (window_ptr == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12222 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12223 HideWindow (tip_window);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12224 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12225 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12226
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
12227 if (!is_emacs_window (window_ptr))
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12228 goto OTHER;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12229
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12230 f = mac_window_to_frame (window_ptr);
57373
38e45bf0128a (x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents: 57357
diff changeset
12231
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12232 if ((er.modifiers & activeFlag) != 0)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12233 {
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
12234 /* A window has been activated */
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12235 Point mouse_loc;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12236
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12237 err = GetRootControl (FRAME_MAC_WINDOW (f), &root_control);
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12238 if (err == noErr)
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12239 ActivateControl (root_control);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12240
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12241 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
12242
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12243 mouse_loc.h = (er.where.h
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12244 - (f->left_pos
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12245 + FRAME_OUTER_TO_INNER_DIFF_X (f)));
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12246 mouse_loc.v = (er.where.v
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12247 - (f->top_pos
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12248 + FRAME_OUTER_TO_INNER_DIFF_Y (f)));
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
12249 /* 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
12250 so update things that depend on mouse position. */
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12251 note_mouse_movement (f, &mouse_loc);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12252 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12253 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12254 {
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
12255 /* A window has been deactivated */
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12256 err = GetRootControl (FRAME_MAC_WINDOW (f), &root_control);
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12257 if (err == noErr)
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12258 DeactivateControl (root_control);
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12259
76331
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
12260 #ifdef USE_TOOLKIT_SCROLL_BARS
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12261 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
12262 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12263 struct input_event event;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12264
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12265 EVENT_INIT (event);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12266 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
12267 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
12268 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
12269 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
12270 event.timestamp = timestamp;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12271 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
12272 count++;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12273 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12274 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12275 #endif
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
12276 dpyinfo->grabbed = 0;
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
12277
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12278 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
12279
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12280 if (f == dpyinfo->mouse_face_mouse_frame)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12281 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12282 /* 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
12283 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
12284 frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12285 clear_mouse_face (dpyinfo);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12286 dpyinfo->mouse_face_mouse_frame = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12287 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12288
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12289 /* 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
12290 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
12291 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
12292 mouse leaves the frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12293 if (any_help_event_p)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12294 do_help = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12295 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12296 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12297 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12298
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12299 case keyDown:
70735
d0bad3102124 (XTread_socket) [TARGET_API_MAC_CARBON && MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70563
diff changeset
12300 case keyUp:
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12301 case autoKey:
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12302 ObscureCursor ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12303
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12304 f = mac_focus_frame (dpyinfo);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12305 XSETFRAME (inev.frame_or_window, f);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12306
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12307 /* If mouse-highlight is an integer, input clears out mouse
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12308 highlighting. */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12309 if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12310 && !EQ (f->tool_bar_window, dpyinfo->mouse_face_window))
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12311 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12312 clear_mouse_face (dpyinfo);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12313 dpyinfo->mouse_face_hidden = 1;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12314 }
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12315
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12316 {
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
12317 UInt32 modifiers = er.modifiers, mapped_modifiers;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
12318
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12319 #ifdef MAC_OSX
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
12320 GetEventParameter (eventRef, kEventParamKeyModifiers,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
12321 typeUInt32, NULL,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
12322 sizeof (UInt32), NULL, &modifiers);
70874
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
12323 #endif
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
12324 mapped_modifiers = mac_mapped_modifiers (modifiers);
70874
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
12325
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12326 #if TARGET_API_MAC_CARBON
70874
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
12327 if (!(mapped_modifiers
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
12328 & ~(mac_pass_command_to_system ? cmdKey : 0)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
12329 & ~(mac_pass_control_to_system ? controlKey : 0)))
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12330 goto OTHER;
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12331 else
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12332 #endif
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12333 if (er.what != keyUp)
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12334 do_keystroke (er.what, er.message & charCodeMask,
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12335 (er.message & keyCodeMask) >> 8,
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12336 modifiers, timestamp, &inev);
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
12337 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12338 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12339
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12340 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
12341 AEProcessAppleEvent (&er);
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
12342 break;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
12343
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12344 default:
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12345 OTHER:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12346 #if TARGET_API_MAC_CARBON
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12347 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12348 OSStatus err;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12349
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12350 read_socket_inev = &inev;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12351 err = SendEventToEventTarget (eventRef, toolbox_dispatcher);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12352 read_socket_inev = NULL;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12353 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12354 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12355 break;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12356 }
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12357 #if TARGET_API_MAC_CARBON
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12358 ReleaseEvent (eventRef);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
12359 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12360
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12361 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
12362 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
12363 inev.timestamp = timestamp;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12364 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
12365 count++;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12366 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12367
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12368 if (do_help
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12369 && !(hold_quit && hold_quit->kind != NO_EVENT))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12370 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12371 Lisp_Object frame;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12372
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12373 if (f)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12374 XSETFRAME (frame, f);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12375 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12376 frame = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12377
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12378 if (do_help > 0)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
12379 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12380 any_help_event_p = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12381 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
12382 help_echo_object, help_echo_pos);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
12383 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12384 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12385 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12386 help_echo_string = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12387 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
12388 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12389 count++;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12390 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12391 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12392
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12393 /* 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
12394 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
12395 /* ??? 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
12396 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
12397 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12398 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
12399 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
12400 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12401
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12402 if (mac_screen_config_changed)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12403 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12404 mac_get_screen_info (dpyinfo);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12405 mac_screen_config_changed = 0;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12406 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12407
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12408 #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
12409 /* 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
12410 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
12411 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
12412 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
12413 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12414 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
12415
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12416 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
12417 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12418 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
12419
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12420 /* 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
12421 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
12422 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
12423 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
12424
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12425 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
12426 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
12427 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12428 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12429 #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
12430
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
12431 --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
12432 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12433 return count;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12434 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12435
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12436
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12437 /* 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
12438 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
12439 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
12440 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
12441 #ifdef __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12442 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12443 __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
12444 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12445 #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
12446 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12447
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12448 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12449 __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
12450 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12451 #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
12452 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12453 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12454
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12455 #ifdef MAC_OS8
47634
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
12456 void
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
12457 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
12458 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12459 Lisp_Object frame;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12460 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
12461
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12462 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
12463
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12464 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
12465 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
12466 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
12467 bzero (f->output_data.mac, sizeof (struct mac_output));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
12468
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12469 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
12470
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
12471 FRAME_COLS (f) = 96;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
12472 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
12473
53722
4f64eb1ea148 Move setting of scroll bars from make_mac_frame to
Steven Tamm <steventamm@mac.com>
parents: 53651
diff changeset
12474 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
12475 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
12476
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12477 FRAME_DESIRED_CURSOR (f) = FILLED_BOX_CURSOR;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12478
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12479 f->output_data.mac->cursor_pixel = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12480 f->output_data.mac->border_pixel = 0x00ff00;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12481 f->output_data.mac->mouse_pixel = 0xff00ff;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12482 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
12483
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
12484 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
12485 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
12486 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
12487 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
12488 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
12489 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
12490
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12491 FRAME_FONTSET (f) = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12492 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
12493 f->left_pos = 8;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12494 f->top_pos = 32;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12495 f->border_width = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12496
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12497 f->internal_border_width = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12498
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12499 f->auto_raise = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12500 f->auto_lower = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12501
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12502 f->new_text_cols = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12503 f->new_text_lines = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12504
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12505 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
12506 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
12507 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
12508
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12509 BLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12510
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12511 if (!(FRAME_MAC_WINDOW (f) =
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12512 NewCWindow (NULL, &r, "\p", true, dBoxProc,
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12513 (WindowRef) -1, 1, (long) f->output_data.mac)))
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12514 abort ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12515 /* 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
12516 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
12517
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12518 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
12519
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12520 x_make_gc (f);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
12521
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12522 /* 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
12523 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
12524
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12525 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
12526 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
12527 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
12528 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
12529 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
12530 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
12531 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
12532 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
12533 build_string ("white")), Qnil));
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12534 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12535 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12536
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12537
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12538 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12539 Initialization
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12540 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12541
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12542 static int mac_initialized = 0;
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
12543
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
12544 static XrmDatabase
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12545 mac_make_rdb (xrm_option)
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
12546 const char *xrm_option;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12547 {
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
12548 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
12549
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
12550 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
12551 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
12552 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
12553
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
12554 return database;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12555 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12556
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12557 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
12558 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
12559 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
12560 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
12561 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
12562 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12563 struct mac_display_info *dpyinfo;
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12564 struct terminal *terminal;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12565
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12566 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
12567
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12568 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
12569 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12570 mac_initialize ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12571 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
12572 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12573
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12574 if (x_display_list)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12575 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
12576
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12577 dpyinfo = &one_mac_display_info;
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12578 bzero (dpyinfo, sizeof (*dpyinfo));
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12579
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12580 terminal = mac_create_terminal (dpyinfo);
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12581
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12582 /* Set the name of the terminal. */
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12583 terminal->name = (char *) xmalloc (SBYTES (display_name) + 1);
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12584 strncpy (terminal->name, SDATA (display_name), SBYTES (display_name));
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12585 terminal->name[SBYTES (display_name)] = 0;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12586
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12587 #ifdef MAC_OSX
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12588 dpyinfo->mac_id_name
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12589 = (char *) xmalloc (SCHARS (Vinvocation_name)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12590 + SCHARS (Vsystem_name)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12591 + 2);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12592 sprintf (dpyinfo->mac_id_name, "%s@%s",
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12593 SDATA (Vinvocation_name), SDATA (Vsystem_name));
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12594 #else
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12595 dpyinfo->mac_id_name = (char *) xmalloc (strlen ("Mac Display") + 1);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12596 strcpy (dpyinfo->mac_id_name, "Mac Display");
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12597 #endif
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12598
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12599 dpyinfo->reference_count = 0;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12600 dpyinfo->resx = 72.0;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12601 dpyinfo->resy = 72.0;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12602
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12603 mac_get_screen_info (dpyinfo);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12604
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12605 dpyinfo->grabbed = 0;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12606 dpyinfo->root_window = NULL;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12607 dpyinfo->image_cache = make_image_cache ();
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12608
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12609 dpyinfo->mouse_face_beg_row = dpyinfo->mouse_face_beg_col = -1;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12610 dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_end_col = -1;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12611 dpyinfo->mouse_face_face_id = DEFAULT_FACE_ID;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12612 dpyinfo->mouse_face_window = Qnil;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12613 dpyinfo->mouse_face_overlay = Qnil;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12614 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
12615
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
12616 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
12617
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12618 /* Put this display on the chain. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12619 dpyinfo->next = x_display_list;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12620 x_display_list = dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12621
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12622 /* 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
12623 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
12624 Fcons (Qnil, dpyinfo->xrdb)),
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12625 x_display_name_list);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12626 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
12627
86252
2da228125cce (mac_term_init): Call add_keyboard_wait_descriptor.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86251
diff changeset
12628 /* FIXME: Untested.
2da228125cce (mac_term_init): Call add_keyboard_wait_descriptor.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86251
diff changeset
12629 Add the default keyboard. */
2da228125cce (mac_term_init): Call add_keyboard_wait_descriptor.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86251
diff changeset
12630 add_keyboard_wait_descriptor (0);
2da228125cce (mac_term_init): Call add_keyboard_wait_descriptor.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86251
diff changeset
12631
84542
cd518430d431 (mac_initialize): Don't call mac_init_fringe here.
Jason Rumney <jasonr@gnu.org>
parents: 83676
diff changeset
12632 #if USE_CG_DRAWING
cd518430d431 (mac_initialize): Don't call mac_init_fringe here.
Jason Rumney <jasonr@gnu.org>
parents: 83676
diff changeset
12633 mac_init_fringe (terminal->rif);
cd518430d431 (mac_initialize): Don't call mac_init_fringe here.
Jason Rumney <jasonr@gnu.org>
parents: 83676
diff changeset
12634 #endif
cd518430d431 (mac_initialize): Don't call mac_init_fringe here.
Jason Rumney <jasonr@gnu.org>
parents: 83676
diff changeset
12635
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12636 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
12637
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12638 return dpyinfo;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12639 }
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12640
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12641 /* 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
12642
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12643 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12644 x_delete_display (dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12645 struct mac_display_info *dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12646 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12647 int i;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12648
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12649 /* 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
12650 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
12651 if (! NILP (x_display_name_list)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12652 && 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
12653 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
12654 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12655 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12656 Lisp_Object tail;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12657
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12658 tail = x_display_name_list;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12659 while (CONSP (tail) && CONSP (XCDR (tail)))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12660 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12661 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
12662 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12663 XSETCDR (tail, XCDR (XCDR (tail)));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12664 break;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12665 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12666 tail = XCDR (tail);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12667 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12668 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12669
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12670 if (x_display_list == dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12671 x_display_list = dpyinfo->next;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12672 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12673 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12674 struct x_display_info *tail;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12675
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12676 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
12677 if (tail->next == dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12678 tail->next = tail->next->next;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12679 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12680
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12681 /* 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
12682 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
12683 if (dpyinfo->font_table[i].name)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12684 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12685 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
12686 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
12687 xfree (dpyinfo->font_table[i].name);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12688 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12689
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12690 if (dpyinfo->font_table)
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12691 {
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12692 if (dpyinfo->font_table->font_encoder)
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12693 xfree (dpyinfo->font_table->font_encoder);
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12694 xfree (dpyinfo->font_table);
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12695 }
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12696 if (dpyinfo->mac_id_name)
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12697 xfree (dpyinfo->mac_id_name);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12698
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12699 if (x_display_list == 0)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12700 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12701 mac_clear_font_name_table ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12702 bzero (dpyinfo, sizeof (*dpyinfo));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12703 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12704 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12705
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12706
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12707 static void
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12708 init_menu_bar ()
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12709 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12710 #ifdef MAC_OSX
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
12711 OSStatus err;
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12712 MenuRef menu;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12713 MenuItemIndex menu_index;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12714
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12715 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
12716 &menu, &menu_index);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12717 if (err == noErr)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12718 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
12719 EnableMenuCommand (NULL, kHICommandPreferences);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12720 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
12721 &menu, &menu_index);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12722 if (err == noErr)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12723 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12724 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
12725 InsertMenuItemTextWithCFString (menu, NULL,
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12726 0, kMenuItemAttrSeparator, 0);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12727 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
12728 0, 0, kHICommandAbout);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12729 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12730 #else /* !MAC_OSX */
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12731 #if TARGET_API_MAC_CARBON
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12732 SetMenuItemCommandID (GetMenuRef (M_APPLE), I_ABOUT, kHICommandAbout);
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12733 #endif
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12734 #endif
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12735 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12736
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12737 #if USE_MAC_TSM
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12738 static void
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12739 init_tsm ()
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12740 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12741 #ifdef MAC_OSX
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12742 static InterfaceTypeList types = {kUnicodeDocument};
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12743 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12744 static InterfaceTypeList types = {kTextService};
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12745 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12746
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12747 NewTSMDocument (sizeof (types) / sizeof (types[0]), types,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12748 &tsm_document_id, 0);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12749 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12750 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12751
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12752 /* 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
12753
50360
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
12754 extern frame_parm_handler mac_frame_parm_handlers[];
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
12755
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12756 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
12757 {
50360
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
12758 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
12759 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
12760 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
12761 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
12762 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
12763 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
12764 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
12765 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
12766 x_update_window_end,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12767 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
12768 x_flush,
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
12769 #if USE_CG_DRAWING
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
12770 mac_flush_display_optional,
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
12771 #else
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
12772 0, /* flush_display_optional */
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
12773 #endif
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12774 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
12775 x_get_glyph_overhangs,
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
12776 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
12777 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
12778 #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
12779 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
12780 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
12781 #else
53885
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
12782 0, /* define_fringe_bitmap */
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
12783 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
12784 #endif
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
12785 mac_per_char_metric,
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
12786 mac_encode_char,
59718
d4cb255b034d * dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents: 59655
diff changeset
12787 mac_compute_glyph_string_overhangs,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12788 x_draw_glyph_string,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12789 mac_define_frame_cursor,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12790 mac_clear_frame_area,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12791 mac_draw_window_cursor,
50344
31cf5b909af7 (x_redisplay_interface): Add missing entry for
Andreas Schwab <schwab@suse.de>
parents: 50247
diff changeset
12792 mac_draw_vertical_window_border,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12793 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
12794 };
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12795
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12796 static struct terminal *
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12797 mac_create_terminal (struct mac_display_info *dpyinfo)
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12798 {
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12799 struct terminal *terminal;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12800
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12801 terminal = create_terminal ();
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12802
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12803 terminal->type = output_mac;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12804 terminal->display_info.mac = dpyinfo;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12805 dpyinfo->terminal = terminal;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12806
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12807 terminal->clear_frame_hook = x_clear_frame;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12808 terminal->ins_del_lines_hook = x_ins_del_lines;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12809 terminal->delete_glyphs_hook = x_delete_glyphs;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12810 terminal->ring_bell_hook = XTring_bell;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12811 terminal->reset_terminal_modes_hook = XTreset_terminal_modes;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12812 terminal->set_terminal_modes_hook = XTset_terminal_modes;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12813 terminal->update_begin_hook = x_update_begin;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12814 terminal->update_end_hook = x_update_end;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12815 terminal->set_terminal_window_hook = XTset_terminal_window;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12816 terminal->read_socket_hook = XTread_socket;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12817 terminal->frame_up_to_date_hook = XTframe_up_to_date;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12818 terminal->mouse_position_hook = XTmouse_position;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12819 terminal->frame_rehighlight_hook = XTframe_rehighlight;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12820 terminal->frame_raise_lower_hook = XTframe_raise_lower;
83630
28201311b297 * term.c (init_tty): Use terminal specific mouse_position_hook.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83629
diff changeset
12821 /* terminal->fullscreen_hook = XTfullscreen_hook; */
28201311b297 * term.c (init_tty): Use terminal specific mouse_position_hook.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83629
diff changeset
12822 terminal->set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar;
28201311b297 * term.c (init_tty): Use terminal specific mouse_position_hook.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83629
diff changeset
12823 terminal->condemn_scroll_bars_hook = XTcondemn_scroll_bars;
28201311b297 * term.c (init_tty): Use terminal specific mouse_position_hook.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83629
diff changeset
12824 terminal->redeem_scroll_bar_hook = XTredeem_scroll_bar;
28201311b297 * term.c (init_tty): Use terminal specific mouse_position_hook.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83629
diff changeset
12825 terminal->judge_scroll_bars_hook = XTjudge_scroll_bars;
28201311b297 * term.c (init_tty): Use terminal specific mouse_position_hook.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83629
diff changeset
12826 terminal->delete_frame_hook = x_destroy_window;
28201311b297 * term.c (init_tty): Use terminal specific mouse_position_hook.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83629
diff changeset
12827 /* terminal->delete_terminal_hook = x_delete_terminal; */
28201311b297 * term.c (init_tty): Use terminal specific mouse_position_hook.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83629
diff changeset
12828
28201311b297 * term.c (init_tty): Use terminal specific mouse_position_hook.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83629
diff changeset
12829 terminal->rif = &x_redisplay_interface;
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12830 #if 0
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
12831 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
12832 TTY_CHAR_INS_DEL_OK (CURTTY ()) = 1;
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
12833 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
12834 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
12835 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
12836 scrolls off the
4250e7e26247 Add a level of indirection to terminal characteristics.
Karoly Lorentey <lorentey@elte.hu>
parents: 52977
diff changeset
12837 bottom */
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12838 #else
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12839 terminal->scroll_region_ok = 1; /* We'll scroll partial frames. */
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12840 terminal->char_ins_del_ok = 1;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12841 terminal->line_ins_del_ok = 1; /* We'll just blt 'em. */
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12842 terminal->fast_clear_end_of_line = 1; /* X does this well. */
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12843 terminal->memory_below_frame = 0; /* We don't remember what scrolls
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12844 off the bottom. */
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12845
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12846 #endif
84542
cd518430d431 (mac_initialize): Don't call mac_init_fringe here.
Jason Rumney <jasonr@gnu.org>
parents: 83676
diff changeset
12847
85614
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12848 /* FIXME: This keyboard setup is 100% untested, just copied from
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12849 w32_create_terminal in order to set window-system now that it's
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12850 a keyboard object. */
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12851 /* We don't yet support separate terminals on Mac, so don't try to share
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12852 keyboards between virtual terminals that are on the same physical
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12853 terminal like X does. */
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12854 terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12855 init_kboard (terminal->kboard);
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12856 terminal->kboard->Vwindow_system = intern ("mac");
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12857 terminal->kboard->next_kboard = all_kboards;
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12858 all_kboards = terminal->kboard;
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12859 /* Don't let the initial kboard remain current longer than necessary.
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12860 That would cause problems if a file loaded on startup tries to
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12861 prompt in the mini-buffer. */
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12862 if (current_kboard == initial_kboard)
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12863 current_kboard = terminal->kboard;
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12864 terminal->kboard->reference_count++;
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12865
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12866 return terminal;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12867 }
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12868
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12869 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
12870 mac_initialize ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12871 {
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12872
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12873 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
12874
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12875 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
12876 any_help_event_p = 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
12877
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12878 /* 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
12879 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
12880
57425
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
12881 BLOCK_INPUT;
46121
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
12882
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
12883 #if TARGET_API_MAC_CARBON
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
12884
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12885 install_application_handler ();
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12886
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12887 init_menu_bar ();
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12888
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12889 #if USE_MAC_TSM
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12890 init_tsm ();
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12891 #endif
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
12892
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
12893 #ifdef MAC_OSX
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
12894 init_coercion_handler ();
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
12895
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
12896 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
12897
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12898 init_dm_notification_handler ();
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12899
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
12900 if (!inhibit_window_system)
75834
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
12901 {
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
12902 static const ProcessSerialNumber psn = {0, kCurrentProcess};
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
12903
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
12904 SetFrontProcess (&psn);
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
12905 }
46121
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
12906 #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
12907 #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
12908
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
12909 #if USE_CG_DRAWING
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
12910 init_cg_color ();
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
12911 #endif
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
12912
57425
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
12913 UNBLOCK_INPUT;
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12914
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12915 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12916
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12917
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12918 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12919 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
12920 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12921 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12922 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
12923 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
12924 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12925
67101
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
12926 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
12927 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
12928 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
12929 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
12930 Qsuper = intern ("super"); staticpro (&Qsuper);
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
12931 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
12932 staticpro (&Qmodifier_value);
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
12933
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
12934 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
12935 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
12936 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
12937 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
12938 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
12939
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12940 #if TARGET_API_MAC_CARBON
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
12941 Qhi_command = intern ("hi-command"); staticpro (&Qhi_command);
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
12942 #ifdef MAC_OSX
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
12943 Qtoolbar_switch_mode = intern ("toolbar-switch-mode");
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
12944 staticpro (&Qtoolbar_switch_mode);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
12945 #if USE_MAC_FONT_PANEL
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
12946 Qpanel_closed = intern ("panel-closed"); staticpro (&Qpanel_closed);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
12947 Qselection = intern ("selection"); staticpro (&Qselection);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
12948 #endif
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
12949
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
12950 Qservice = intern ("service"); staticpro (&Qservice);
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12951 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
12952 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
12953 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12954 #if USE_MAC_TSM
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12955 Qtext_input = intern ("text-input"); staticpro (&Qtext_input);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12956 Qupdate_active_input_area = intern ("update-active-input-area");
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12957 staticpro (&Qupdate_active_input_area);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12958 Qunicode_for_key_event = intern ("unicode-for-key-event");
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12959 staticpro (&Qunicode_for_key_event);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12960 #endif
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
12961 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12962
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12963 #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
12964 Fprovide (intern ("mac-carbon"), Qnil);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12965 #endif
49015
c49640262de0 * macterm.c (syms_of_macterm): Provide the feature "mac-carbon" to
Steven Tamm <steventamm@mac.com>
parents: 49003
diff changeset
12966
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
12967 staticpro (&Qreverse);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
12968 Qreverse = intern ("reverse");
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
12969
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12970 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
12971 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
12972
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12973 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
12974 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
12975
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
12976 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
12977 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
12978
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
12979 #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
12980 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
12981 atsu_font_id_hash = Qnil;
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12982
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12983 staticpro (&fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12984 fm_style_face_attributes_alist = Qnil;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12985 #endif
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12986
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12987 #if USE_MAC_TSM
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12988 staticpro (&saved_ts_script_language_on_focus);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12989 saved_ts_script_language_on_focus = Qnil;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
12990 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
12991
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
12992 /* 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
12993 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
12994 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
12995 &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
12996 doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties.
74567
6b41da580ac3 (syms_of_macterm) <x-use-underline-position-properties,
Juanma Barranquero <lekktu@gmail.com>
parents: 73993
diff changeset
12997 A value of nil means ignore them. If you encounter fonts with bogus
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
12998 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
12999 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
13000
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
13001 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
13002 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
13003
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
13004 DEFVAR_BOOL ("x-underline-at-descent-line",
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
13005 &x_underline_at_descent_line,
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
13006 doc: /* *Non-nil means to draw the underline at the same place as the descent line.
74567
6b41da580ac3 (syms_of_macterm) <x-use-underline-position-properties,
Juanma Barranquero <lekktu@gmail.com>
parents: 73993
diff changeset
13007 A value of nil means to draw the underline according to the value of the
6b41da580ac3 (syms_of_macterm) <x-use-underline-position-properties,
Juanma Barranquero <lekktu@gmail.com>
parents: 73993
diff changeset
13008 variable `x-use-underline-position-properties', which is usually at the
6b41da580ac3 (syms_of_macterm) <x-use-underline-position-properties,
Juanma Barranquero <lekktu@gmail.com>
parents: 73993
diff changeset
13009 baseline level. The default value is nil. */);
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
13010 x_underline_at_descent_line = 0;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
13011
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
13012 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars,
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
13013 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
13014 #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
13015 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
13016 #else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
13017 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
13018 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
13019
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
13020 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
13021 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
13022
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
13023 /* 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
13024
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
13025 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
13026 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
13027 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
13028 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
13029 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
13030
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
13031 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
13032 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
13033 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
13034 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
13035 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
13036 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
13037 Vmac_option_modifier = Qnil;
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
13038
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
13039 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
13040 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
13041 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
13042 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
13043 Vmac_command_modifier = Qmeta;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
13044
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
13045 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
13046 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
13047 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
13048 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
13049 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
13050 Vmac_function_modifier = Qnil;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
13051
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
13052 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
13053 &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
13054 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
13055 The value can be nil, t, or the symbol `reverse'.
74567
6b41da580ac3 (syms_of_macterm) <x-use-underline-position-properties,
Juanma Barranquero <lekktu@gmail.com>
parents: 73993
diff changeset
13056 A value of nil means that no emulation should be done and the modifiers
6b41da580ac3 (syms_of_macterm) <x-use-underline-position-properties,
Juanma Barranquero <lekktu@gmail.com>
parents: 73993
diff changeset
13057 should be placed on the mouse-1 event.
67101
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
13058 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
13059 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
13060 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
13061 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
13062 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
13063 Vmac_emulate_three_button_mouse = Qnil;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
13064
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
13065 #if TARGET_API_MAC_CARBON
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
13066 DEFVAR_BOOL ("mac-wheel-button-is-mouse-2", &mac_wheel_button_is_mouse_2,
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
13067 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
13068 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
13069 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
13070 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
13071
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
13072 DEFVAR_BOOL ("mac-pass-command-to-system", &mac_pass_command_to_system,
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
13073 doc: /* *Non-nil if command key presses are passed on to the Mac Toolbox. */);
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
13074 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
13075
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
13076 DEFVAR_BOOL ("mac-pass-control-to-system", &mac_pass_control_to_system,
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
13077 doc: /* *Non-nil if control key presses are passed on to the Mac Toolbox. */);
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
13078 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
13079
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
13080 #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
13081
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
13082 DEFVAR_BOOL ("mac-allow-anti-aliasing", &mac_use_core_graphics,
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
13083 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
13084 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
13085 may anti-alias the text. */);
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
13086 #if USE_CG_DRAWING
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
13087 mac_use_core_graphics = 1;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
13088 #else
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
13089 mac_use_core_graphics = 0;
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
13090 #endif
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
13091
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
13092 /* 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
13093 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
13094 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
13095 DEFVAR_LISP ("mac-charset-info-alist", &Vmac_charset_info_alist,
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
13096 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
13097 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
13098
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
13099 (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
13100
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
13101 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
13102 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
13103 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
13104 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
13105 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
13106 make_number (smRoman), Qnil), Qnil);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
13107
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
13108 #if USE_MAC_TSM
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
13109 DEFVAR_LISP ("mac-ts-active-input-overlay", &Vmac_ts_active_input_overlay,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
13110 doc: /* Overlay used to display Mac TSM active input area. */);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
13111 Vmac_ts_active_input_overlay = Qnil;
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
13112
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
13113 DEFVAR_LISP ("mac-ts-script-language-on-focus", &Vmac_ts_script_language_on_focus,
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
13114 doc: /* *How to change Mac TSM script/language when a frame gets focus.
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
13115 If the value is t, the input script and language are restored to those
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
13116 used in the last focus frame. If the value is a pair of integers, the
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
13117 input script and language codes, which are defined in the Script
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
13118 Manager, are set to its car and cdr parts, respectively. Otherwise,
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
13119 Emacs doesn't set them and thus follows the system default behavior. */);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
13120 Vmac_ts_script_language_on_focus = Qnil;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
13121 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
13122 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
13123
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
13124 /* arch-tag: f2259165-4454-4c04-a029-a133c8af7b5b
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
13125 (do not change this comment) */