annotate src/macterm.c @ 86689:205c4340ce76

Move here from lisp/nxml/char-name/unicode
author Glenn Morris <rgm@gnu.org>
date Wed, 28 Nov 2007 05:06:17 +0000
parents 2da228125cce
children 107ccd98fa12 53108e6cea98
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,
75348
3d45362f1d38 Add 2007 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 75200
diff changeset
3 2005, 2006, 2007 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"
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
83
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
84
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
85
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
86 /* 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
87
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
88 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
89
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
90 /* 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
91 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
92 int mac_use_core_graphics;
59577
a4a748516aa7 * macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents: 59575
diff changeset
93
a4a748516aa7 * macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents: 59575
diff changeset
94
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
95 /* 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
96 start. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
97
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
98 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
99
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
100 /* 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
101 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
102
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
103 /* 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
104 (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
105 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
106
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
107 /* 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
108
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
109 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
110
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
111 /* 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
112 use. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
113
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
114 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
115
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
116 /* 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
117 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
118 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
119 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
120 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
121 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
122 display. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
123
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
124 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
125
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
126 /* 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
127 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
128
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
129 /* 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
130 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
131 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
132 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
133
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
134 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
135
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
136 /* 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
137
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
138 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
139
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
140 /* Mouse movement.
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 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
143 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
144 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
145 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
146
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
147 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
148
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
149 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
150 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
151 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
152 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
153 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
154 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
155 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
156 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
157 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
158 is off. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
159
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
160 /* 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
161
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
162 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
163 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
164
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
165 /* 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
166
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
167 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
168 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
169 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
170
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
171 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
172 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
173 event. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
174
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
175 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
176
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
177 /* 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
178 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
179 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
180 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
181 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
182 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
183
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
184 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
185
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
186 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
187
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
188 /* 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
189 events. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
190
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
191 #ifdef __STDC__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
192 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
193 #else
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 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 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
196
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
197 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
198
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
199 extern Lisp_Object Qeql;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
200
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
201 /* 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
202
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
203 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
204
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
205 /* 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
206
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
207 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
208
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
209 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
210
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
211 #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
212 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
213 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
214
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
215 #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
216
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
217 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
218 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
219 int x_catch_errors P_ ((Display *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
220 void x_uncatch_errors P_ ((Display *, int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
221 void x_lower_frame P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
222 void x_scroll_bar_clear P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
223 int x_had_errors_p P_ ((Display *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
224 void x_wm_set_size_hint P_ ((struct frame *, long, int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
225 void x_raise_frame P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
226 void x_set_window_size P_ ((struct frame *, int, int, int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
227 void x_wm_set_window_state P_ ((struct frame *, int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
228 void x_wm_set_icon_pixmap P_ ((struct frame *, int));
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
229 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
230 static void x_font_min_bounds P_ ((XFontStruct *, int *, int *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
231 static int x_compute_min_glyph_bounds P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
232 static void x_update_end P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
233 static void XTframe_up_to_date P_ ((struct frame *));
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
234 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
235 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
236 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
237 static void frame_highlight P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
238 static void frame_unhighlight P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
239 static void x_new_focus_frame P_ ((struct x_display_info *, struct frame *));
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
240 static void mac_focus_changed P_ ((int, struct mac_display_info *,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
241 struct frame *, struct input_event *));
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
242 static void x_detect_focus_change P_ ((struct mac_display_info *,
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
243 const EventRecord *,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
244 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
245 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
246 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
247 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
248 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
249 enum text_cursor_kinds));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
250
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
251 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
252 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
253 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
254 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
255 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
256 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
257 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
258 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
259 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
260
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
261 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
262 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
263 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
264 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
265
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
266
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
267 #define GC_FORE_COLOR(gc) (&(gc)->fore_color)
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
268 #define GC_BACK_COLOR(gc) (&(gc)->back_color)
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
269 #define GC_FONT(gc) ((gc)->xgcv.font)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
270 #define FRAME_NORMAL_GC(f) ((f)->output_data.mac->normal_gc)
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
271
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
272 #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
273 CGContextSetRGBFillColor (context, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
274 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
275 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
276 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
277 #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
278 #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
279 #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
280 do { \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
281 if (CGColorGetTypeID != NULL) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
282 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
283 else \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
284 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
285 } while (0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
286 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
287 #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
288 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
289 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
290 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
291 #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
292 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
293 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
294 #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
295 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
296 (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
297 #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
298 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
299 (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
300
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
301
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
302 #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
303 CGContextSetRGBStrokeColor (context, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
304 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
305 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
306 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
307 #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
308 #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
309 #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
310 do { \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
311 if (CGColorGetTypeID != NULL) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
312 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
313 else \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
314 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
315 } while (0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
316 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
317 #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
318 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
319 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
320 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
321 #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
322 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
323 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
324 #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
325 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
326 (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
327
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
328 #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
329 #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
330
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
331 /* 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
332
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
333 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
334 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
335
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
336 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
337 #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
338 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
339 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
340
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
341 static void
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
342 init_cg_color ()
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
343 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
344 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
345 #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
346 #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
347 /* 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
348 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
349 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
350 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
351 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
352 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
353
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
354 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
355 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
356 #endif
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
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
359 static CGContextRef
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
360 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
361 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
362 GC gc;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
363 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
364 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
365
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
366 if (!context)
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 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
369 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
370 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
371
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
372 CGContextSaveGState (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
373 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
374 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
375 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
376 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
377
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
378 return context;
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
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
381 static void
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
382 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
383 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
384 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
385 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
386 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
387
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
388 void
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
389 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
390 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
391 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
392 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
393 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
394 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
395 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
396 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
397 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
398 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
399 else
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 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
402
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
403 if (context)
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 CGContextSynchronize (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
406 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
407 &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
408 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
409 }
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 #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
412
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
413 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
414
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
415 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
416 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
417 struct frame *f;
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
418 GC gc;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
419 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
420 static RgnHandle new_region = NULL;
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 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
423 saved_port_clip_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
424 if (new_region == NULL)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
425 new_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
426
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
427 #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
428 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
429 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
430 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
431
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
432 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
433 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
434 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
435 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
436 SetClip (new_region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
437 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
438 }
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 static void
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
441 mac_end_clip (gc)
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
442 GC gc;
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
443 {
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
444 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
445 SetClip (saved_port_clip_region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
446 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
447
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
448
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
449 /* 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
450
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
451 /* 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
452
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
453 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
454 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
455 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
456 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
457 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
458 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
459 #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
460 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
461 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
462
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
463 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
464 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
465 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
466 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
467
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
468 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
469 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
470 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
471 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
472 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
473 CGContextClosePath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
474 CGContextStrokePath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
475 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
476 #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
477 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
478 {
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 (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
480 y1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
481 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
482 y2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
483 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
484 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
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 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
487 x1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
488 else
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
489 x2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
490 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
491
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
492 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
493 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
494 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
495 LineTo (x2, y2);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
496 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
497 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
498 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
499
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
500 /* 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
501
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
502 void
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
503 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
504 Display *display;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
505 Pixmap p;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
506 GC gc;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
507 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
508 {
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
509 CGrafPtr old_port;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
510 GDHandle old_gdh;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
511
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
512 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
513 {
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 (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
515 y1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
516 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
517 y2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
518 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
519 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
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 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
522 x1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
523 else
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
524 x2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
525 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
526
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
527 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
528 SetGWorld (p, NULL);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
529
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
530 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
531
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
532 LockPixels (GetGWorldPixMap (p));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
533 MoveTo (x1, y1);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
534 LineTo (x2, y2);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
535 UnlockPixels (GetGWorldPixMap (p));
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
536
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
537 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
538 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
539
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
540
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
541 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
542 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
543 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
544 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
545 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
546 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
547 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
548 #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
549 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
550 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
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 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
553 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
554 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
555 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
556 }
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
557 #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
558 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
559 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
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 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
562 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
563 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
564 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
565 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
566 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
567 }
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
568 #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
569 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
570
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
571
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
572 /* 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
573
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
574 void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
575 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
576 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
577 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
578 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
579 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
580 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
581 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
582
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
583 /* 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
584
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
585 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
586 mac_clear_window (f)
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
587 struct frame *f;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
588 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
589 #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
590 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
591 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
592 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
593
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
594 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
595 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
596 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
597 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
598 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
599 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
600 #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
601 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
602
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
603 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
604
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
605 #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
606 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
607 Rect r;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
608
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
609 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
610 EraseRect (&r);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
611 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
612 #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
613 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
614 #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
615 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
616 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
617
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 /* 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
620
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
621 #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
622 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
623 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
624 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
625 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
626 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
627 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
628 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
629 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
630 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
631 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
632 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
633 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
634 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
635
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
636 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
637 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
638 {
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
639 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
640 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
641 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
642 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
643 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
644 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
645 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
646 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
647 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
648 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
649 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
650 + 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
651 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
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 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 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
655 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
656
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
657 #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
658
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
659 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
660 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
661 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
662 GC gc;
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
663 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
664 unsigned short *bits;
53899
e45e1fbbe83e (mac_draw_bitmap): Add overlay_p arg.
Kim F. Storm <storm@cua.dk>
parents: 53885
diff changeset
665 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
666 {
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
667 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
668 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
669
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
670 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
671 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
672 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
673
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
674 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
675 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
676 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
677 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
678 #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
679 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
680 CGrafPtr port;
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 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
683 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
684 CopyBits (&bitmap, GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
685 &(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
686 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
687 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
688 #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
689 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
690 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
691 #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
692 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
693 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
694 }
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
695 #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
696
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
697
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
698 /* 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
699
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
700 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
701 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
702 BitMap *bitmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
703 char *bits;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
704 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
705 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
706 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
707 = { 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
708 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
709 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
710 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
711 int i, j, w1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
712 char *p;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
713
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
714 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
715 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
716 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
717 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
718 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
719 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
720 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
721 for (j = 0; j < w1; j++)
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
722 {
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
723 /* 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
724 unsigned char c = *bits++;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
725 *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
726 | (swap_nibble[(c>>4) & 0xf]));
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
727 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
728 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
729
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
730 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
731 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
732
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
735 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
736 BitMap *bitmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
737 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
738 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
739 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
740
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
741
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
742 Pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
743 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
744 Display *display;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
745 WindowRef w;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
746 unsigned int width, height;
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
747 unsigned int depth;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
748 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
749 Pixmap pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
750 Rect r;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
751 QDErr err;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
752
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
753 SetPortWindowPort (w);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
754
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
755 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
756 #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
757 if (depth == 1)
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
758 #endif
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
759 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
760 #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
761 else
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
762 /* 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
763 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
764 #endif
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
765 if (err != noErr)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
766 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
767 return pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
768 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
769
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 Pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
772 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
773 Display *display;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
774 WindowRef w;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
775 char *data;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
776 unsigned int width, height;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
777 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
778 unsigned int depth;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
779 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
780 Pixmap pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
781 BitMap bitmap;
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
782 CGrafPtr old_port;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
783 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
784 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
785
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
786 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
787 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
788
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
789 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
790 if (pixmap == NULL)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
791 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
792
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
793 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
794 SetGWorld (pixmap, NULL);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
795 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
796 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
797 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
798 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
799 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
800 LockPixels (GetGWorldPixMap (pixmap));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
801 #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
802 CopyBits (&bitmap, GetPortBitMapForCopyBits (pixmap),
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
803 &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
804 #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
805 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
806 &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
807 #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
808 UnlockPixels (GetGWorldPixMap (pixmap));
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
809 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
810 mac_free_bitmap (&bitmap);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
811
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
812 return pixmap;
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
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
815
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
816 void
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
817 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
818 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
819 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
820 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
821 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
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
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
824
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
825 /* 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
826
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
827 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
828 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
829 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
830 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
831 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
832 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
833 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
834 #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
835 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
836
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
837 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
838 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
839 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
840 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
841 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
842 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
843
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
844 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
845 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
846 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
847 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
848 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
849 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
850 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
851
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 /* 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
854
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
855 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
856 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
857 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
858 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
859 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
860 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
861 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
862 #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
863 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
864
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
865 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
866 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
867 CGContextStrokeRect (context,
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
868 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
869 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
870 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
871 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
872
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
873 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
874 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
875 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
876 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
877 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
878 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
879 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
880
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
881
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
882 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
883 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
884 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
885 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
886 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
887 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
888 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
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 #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
891 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
892 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
893 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
894
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
895 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
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 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
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
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
900
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
901 #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
902 static OSStatus
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
903 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
904 ConstUniCharArrayPtr text;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
905 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
906 ATSUStyle style;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
907 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
908 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
909 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
910 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
911
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
912 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
913 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
914 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
915 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
916 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
917 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
918 #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
919 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
920 | kATSLineUseQDRendering
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
921 #else
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
922 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
923 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
924 ;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
925 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
926
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
927 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
928 kATSUFromTextBeginning,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
929 kATSUToTextEnd,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
930 text_length,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
931 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
932 &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
933 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
934 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
935 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
936 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
937 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
938 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
939 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
940 else
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 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
943 kATSUFromTextBeginning, kATSUToTextEnd);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
944 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
945 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
946 kATSUFromTextBeginning,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
947 kATSUToTextEnd,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
948 text_length);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
949 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
950
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
951 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
952 *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
953 return err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
954 }
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
955
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
956
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
957 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
958 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
959 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
960 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
961 GC gc;
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
962 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
963 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
964 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
965 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
966 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
967 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
968
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
969 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
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 #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
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 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
974 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
975
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
976 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
977 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
978 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
979 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
980 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
981 nchars,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
982 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
983 &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
984 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
985 return;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
986 #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
987 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
988 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
989 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
990 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
991 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
992 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
993 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
994 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
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 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
997 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
998 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
999 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
1000 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
1001 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1002 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
1003 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
1004 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
1005 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
1006 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
1007 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1008 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
1009 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
1010 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
1011 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
1012 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1013 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
1014 #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
1015 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1016 else
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 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
1019 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
1020 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
1021 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
1022 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
1023
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1024 #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
1025 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
1026 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1027 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
1028
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1029 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
1030 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
1031 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
1032 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1033 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
1034 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
1035 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
1036 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
1037 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 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1039 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
1040 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1041 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
1042 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
1043 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
1044 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
1045 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
1046 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1047 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
1048 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
1049 #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
1050 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1051 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1052 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
1053 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
1054 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
1055 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
1056 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
1057 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1058 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
1059 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
1060 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
1061 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
1062 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
1063 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
1064 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
1065 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1066 #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
1067 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
1068 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
1069 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1070 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
1071 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
1072 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1073 #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
1074 /* 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
1075 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
1076 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
1077 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1078 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
1079 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
1080 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
1081 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1082 }
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 /* 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
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 /* 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
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
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1088 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
1089 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
1090 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
1091 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
1092 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
1093 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
1094 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
1095 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
1096 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1097 #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
1098 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
1099 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1100
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1101 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
1102 #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
1103 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
1104 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
1105 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1106 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
1107 #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
1108 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
1109 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1110 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
1111 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
1112 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1113 else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1114 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
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 /* 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
1117 because:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1118 - 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
1119 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
1120 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
1121 - 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
1122 - 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
1123 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
1124 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1125 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
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 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
1128 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
1129 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
1130 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
1131 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1132 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
1133 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1134 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
1135 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
1136 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
1137 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
1138 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
1139 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
1140 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1141 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
1142 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
1143 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
1144 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1145 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
1146 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
1147 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
1148
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1149 #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
1150 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
1151 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
1152 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1153 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1154
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 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
1157 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
1158 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
1159 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
1160 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1161 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
1162 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
1163 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
1164 {
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1165 #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
1166 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
1167 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
1168 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
1169 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
1170 #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
1171 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
1172 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
1173 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1174
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1175
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
1176 /* 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
1177
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 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
1179 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
1180 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
1181 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1182 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
1183 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
1184 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
1185 {
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 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
1187 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
1188 }
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
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 /* 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
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 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
1194 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
1195 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
1196 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1197 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
1198 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
1199 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
1200 {
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 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
1202 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
1203 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1204
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1205
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1206 /* 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
1207 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
1208 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
1209 *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
1210
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1211 static OSStatus
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1212 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
1213 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
1214 overall_return, cg_glyph)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1215 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1216 ATSUStyle style;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1217 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1218 void *style;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1219 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1220 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1221 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
1222 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
1223 #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
1224 CGGlyph *cg_glyph;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1225 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1226 void *cg_glyph;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1227 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1228 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1229 OSStatus err = noErr;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1230 int width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1231 Rect char_bounds;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1232
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1233 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1234 if (style)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1235 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1236 ATSUTextLayout text_layout;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1237 UniChar ch = c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1238
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1239 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
1240 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
1241 && (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
1242 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1243 ATSTrapezoid glyph_bounds;
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 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
1246 kATSUFromTextBeginning, kATSUToTextEnd,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1247 #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
1248 kATSUseFractionalOrigins,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1249 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1250 kATSUseDeviceOrigins,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1251 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1252 1, &glyph_bounds, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1253 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1254 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1255 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
1256 == 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
1257
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1258 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
1259 - glyph_bounds.upperLeft.x);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1260 if (font_ascent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1261 *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
1262 if (font_descent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1263 *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
1264 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1265 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1266 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
1267 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1268 err = ATSUMeasureTextImage (text_layout,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1269 kATSUFromTextBeginning, kATSUToTextEnd,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1270 0, 0, &char_bounds);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1271 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1272 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
1273 #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
1274 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
1275 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1276 OSStatus err1;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1277 ATSUGlyphInfoArray glyph_info_array;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1278 ByteCount count = sizeof (ATSUGlyphInfoArray);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1279
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1280 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
1281 kATSUToTextEnd, NULL, NULL, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1282 if (err1 == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1283 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
1284 kATSUToTextEnd, &count,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1285 &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
1286 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
1287 /* 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
1288 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
1289 && 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
1290 && 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
1291 && 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
1292 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1293 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
1294 *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
1295 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1296 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1297 *cg_glyph = 0;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1298 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1299 #endif
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 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1302 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1303 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1304 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1305 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
1306 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1307 FontInfo font_info;
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 GetFontInfo (&font_info);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1310 if (font_ascent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1311 *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
1312 if (font_descent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1313 *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
1314 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1315 if (overall_return)
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 char ch = c;
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 width = CharWidth (ch);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1320 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
1321 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
1322 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1323 }
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 return err;
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
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 /* 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
1330
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1331 static int
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1332 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
1333 XFontStruct *font_struct;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1334 XChar2b *string;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1335 int nchars;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1336 XCharStruct *overall_return;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1337 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1338 int i;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1339 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
1340 XCharStruct *pcm;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1341
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1342 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
1343 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1344 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
1345 if (pcm == NULL)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1346 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
1347 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1348 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1349 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
1350 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
1351 width += pcm->width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1352 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1353 string++;
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
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1356 overall_return->lbearing = lbearing;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1357 overall_return->rbearing = rbearing;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1358 overall_return->width = width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1359
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1360 /* 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
1361 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1362
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 #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
1365 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
1366
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 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
1368 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
1369 {
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1370 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
1371 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
1372
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1373 threshold =
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1374 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
1375 kCFPreferencesCurrentApplication,
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1376 &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
1377 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
1378 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
1379 }
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
1380
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
1381 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
1382 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
1383 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
1384 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
1385 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
1386 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
1387 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
1388 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1389 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
1390 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
1391 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
1392 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
1393 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
1394
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
1395 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
1396 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
1397
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 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
1399 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
1400 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
1401 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
1402 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
1403 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
1404 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
1405 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
1406 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1407 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
1408
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1409 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
1410 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
1411 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
1412 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
1413 }
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
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1415 #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
1416 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
1417 #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
1418 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
1419 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
1420 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1421 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
1422 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
1423 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
1424 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
1425 #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
1426 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
1427 {
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1428 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
1429 CGContextFillRect
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1430 (context,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1431 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
1432 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
1433 }
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
1434 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
1435 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
1436 #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
1437 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1438 #endif
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1439 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
1440 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
1441 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
1442 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
1443 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
1444 #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
1445 #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
1446 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
1447 #endif
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1448 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1449 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
1450 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
1451 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
1452 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1453 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
1454 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
1455 }
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1456 }
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1457 #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
1458 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
1459 #endif
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1460 #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
1461 #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
1462 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1463 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
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 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
1466 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
1467 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
1468 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
1469 }
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
1470 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1471 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1472 #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
1473 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
1474 #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
1475 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
1476 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
1477 #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
1478
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1479 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
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 #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
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
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
1484 #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
1485 /* 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
1486
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1487 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1488 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
1489 Pixmap src;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1490 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
1491 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1492 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
1493 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
1494 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
1495 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1496 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
1497
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1498 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
1499
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1500 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
1501 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
1502
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1503 ForeColor (blackColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1504 BackColor (whiteColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1505
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1506 LockPixels (GetGWorldPixMap (src));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1507 #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
1508 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1509 CGrafPtr port;
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 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1512 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1513 CopyBits (GetPortBitMapForCopyBits (src),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1514 GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1515 &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
1516 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1517 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1518 #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
1519 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
1520 &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
1521 #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
1522 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
1523
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1524 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
1525
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1526 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
1527 }
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1528
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 static void
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1531 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
1532 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
1533 Pixmap src, mask;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1534 struct frame *f;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1535 GC gc;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1536 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
1537 unsigned int width, height;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1538 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
1539 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1540 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
1541
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1542 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
1543
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1544 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
1545 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
1546
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1547 ForeColor (blackColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1548 BackColor (whiteColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1549
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1550 LockPixels (GetGWorldPixMap (src));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1551 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
1552 #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
1553 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1554 CGrafPtr port;
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 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1557 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1558 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
1559 GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1560 &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
1561 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1562 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1563 #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
1564 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
1565 &(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
1566 #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
1567 UnlockPixels (GetGWorldPixMap (mask));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1568 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
1569
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1570 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
1571
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1572 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
1573 }
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
1574 #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
1575
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1576
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1577 /* 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
1578
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1579 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1580 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
1581 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
1582 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1583 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
1584 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
1585 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
1586 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1587 #if TARGET_API_MAC_CARBON
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1588 Rect src_r;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1589 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
1590
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1591 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
1592 #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
1593 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
1594 #endif
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1595 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
1596 &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
1597 kScrollWindowNoOptions, dummy);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1598 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
1599 #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
1600 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
1601 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
1602
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1603 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
1604
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1605 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
1606 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
1607
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1608 /* 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
1609 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
1610 ForeColor (blackColor);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1611 BackColor (whiteColor);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1612 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
1613
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1614 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
1615
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
1616 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
1617 #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
1618 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1619
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1620
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1621 /* 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
1622
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1623 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
1624 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
1625 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
1626 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
1627 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
1628 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
1629 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1630 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
1631 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
1632 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
1633 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
1634 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
1635 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
1636 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1637
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1638
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1639 /* 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
1640
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1641 GC
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1642 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
1643 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
1644 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
1645 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
1646 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
1647 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1648 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
1649
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
1650 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
1651 #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
1652 #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
1653 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1654 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1655 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1656 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
1657 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
1658 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
1659 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1660 #endif
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
1661 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
1662
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1663 return gc;
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
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 /* 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
1668
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1669 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1670 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
1671 Display *display;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1672 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1673 {
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1674 if (gc->clip_region)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1675 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
1676 #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
1677 #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
1678 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
1679 #endif
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1680 {
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1681 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
1682 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
1683 }
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1684 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1685 xfree (gc);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1686 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1687
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 /* 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
1690
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1691 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
1692 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
1693 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
1694 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
1695 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
1696 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
1697 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1698 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
1699 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
1700 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
1701 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
1702 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
1703 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
1704 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1705
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1706
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1707 /* 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
1708
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1709 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1710 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
1711 Display *display;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1712 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1713 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
1714 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1715 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
1716 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1717 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 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
1719 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
1720 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
1721 #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
1722 #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
1723 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1724 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1725 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1726 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
1727 if (color == 0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1728 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1729 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
1730 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
1731 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1732 else
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 float rgba[4];
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 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
1737 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
1738 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
1739 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
1740 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
1741 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1742 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1743 #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
1744 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1745 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1746
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1747
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1748 /* 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
1749
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1750 void
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1751 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
1752 Display *display;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1753 GC gc;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1754 unsigned long color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1755 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1756 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
1757 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1758 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 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
1760 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
1761 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
1762 #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
1763 #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
1764 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1765 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1766 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1767 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
1768 if (color == 0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1769 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1770 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
1771 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
1772 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1773 else
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 float rgba[4];
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 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
1778 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
1779 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
1780 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
1781 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
1782 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1783 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1784 #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
1785 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1786 }
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 /* 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
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 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
1792 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
1793 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
1794 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
1795 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
1796 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1797 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
1798 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1799
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1800
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1801 /* Mac replacement for XSetClipRectangles. */
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1802
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1803 static void
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1804 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
1805 Display *display;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1806 GC gc;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1807 Rect *rectangles;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1808 int n;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1809 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1810 int i;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1811
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1812 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
1813
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1814 gc->n_clip_rects = n;
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1815 if (n > 0)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1816 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1817 if (gc->clip_region == NULL)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1818 gc->clip_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1819 RectRgn (gc->clip_region, rectangles);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1820 if (n > 1)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1821 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1822 RgnHandle region = NewRgn ();
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 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
1825 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1826 RectRgn (region, rectangles + i);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1827 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
1828 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1829 DisposeRgn (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 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
1832 #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
1833 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
1834 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1835 Rect *rect = rectangles + 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 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
1838 rect->right - rect->left,
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1839 rect->bottom - rect->top);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1840 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1841 #endif
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
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 /* Mac replacement for XSetClipMask. */
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 static INLINE void
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1848 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
1849 Display *display;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1850 GC gc;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1851 {
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1852 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
1853 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1854
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1855
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1856 /* 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
1857
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1858 void
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1859 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
1860 Display *display;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
1861 WindowRef w;
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1862 unsigned long color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1863 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1864 #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
1865 AuxWinHandle aw_handle;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1866 CTabHandle ctab_handle;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1867 ColorSpecPtr ct_table;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1868 short ct_size;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1869 #endif
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1870 RGBColor bg_color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1871
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1872 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
1873 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
1874 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
1875
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1876 #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
1877 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
1878 #else
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1879 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
1880 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1881 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
1882 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
1883 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
1884 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
1885 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
1886 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1887 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
1888 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1889 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
1890 CTabChanged (ctab_handle);
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1891 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
1892 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1893 ct_size--;
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 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1896 #endif
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
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1899 /* 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
1900
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1901 static void
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1902 x_flush (f)
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1903 struct frame *f;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1904 {
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1905 #if TARGET_API_MAC_CARBON
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1906 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
1907 #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
1908 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
1909 #endif
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1910 if (f)
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1911 QDFlushPortBuffer (GetWindowPort (FRAME_MAC_WINDOW (f)), NULL);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1912 else
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1913 QDFlushPortBuffer (GetQDGlobalsThePort (), NULL);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1914 UNBLOCK_INPUT;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1915 #endif
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1916 }
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1917
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1918
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1919 /* 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
1920 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
1921 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
1922 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
1923 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
1924 performance. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1925
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1926 #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
1927
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1928 #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
1929 static void
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1930 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
1931 struct frame *f;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1932 {
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1933 BLOCK_INPUT;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1934 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
1935 UNBLOCK_INPUT;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1936 }
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1937 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1938
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1939 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1940 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
1941 ***********************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1942
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1943 /* 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
1944 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
1945 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
1946 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
1947
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1948 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1949 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
1950 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
1951 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1952 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1953 /* 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
1954 periodically checked with ReceiveNextEvent if
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1955 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
1956 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
1957 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
1958 update of a frame. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1959 BLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1960 DisableScreenUpdates ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1961 UNBLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1962 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1963 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1964
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 /* 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
1967 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
1968 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
1969
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1970 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1971 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
1972 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
1973 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1974 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
1975 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
1976
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1977 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
1978 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
1979
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1980 BLOCK_INPUT;
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 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
1983 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1984 /* 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
1985 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
1986
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1987 /* 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
1988 highlighting. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1989 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
1990 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
1991
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1992 #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
1993 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
1994 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
1995 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
1996 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
1997 here to prevent it from being scrolled. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1998
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1999 /* 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
2000 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
2001 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
2002 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
2003 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
2004 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
2005 && 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
2006 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2007 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2008
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
2009 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
2010 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
2011 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2012
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2013 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
2014 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
2015 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2016 #endif /* 0 */
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2019 UNBLOCK_INPUT;
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2022
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2023 /* 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
2024
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2025 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2026 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
2027 struct window *w;
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2028 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
2029 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2030 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
2031 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
2032
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2033 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
2034 if (face)
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2035 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
2036 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
2037
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2038 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
2039 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2040
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2041 /* 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
2042
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2043 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
2044 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
2045
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2046 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
2047 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
2048 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
2049
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2050 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
2051 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
2052 here. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2053
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2054 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2055 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
2056 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
2057 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
2058 {
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2059 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
2060
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2061 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
2062 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2063 BLOCK_INPUT;
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 if (cursor_on_p)
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2066 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
2067 output_cursor.vpos,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2068 output_cursor.x, output_cursor.y);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2069
57373
38e45bf0128a (x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents: 57357
diff changeset
2070 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
2071 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
2072
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2073 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2074 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2075
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2076 /* 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
2077 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
2078 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
2079 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2080 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
2081 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
2082 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
2083 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2084
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2085 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
2086 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2087
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 /* 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
2090 update_end. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2091
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2092 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2093 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
2094 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
2095 {
56890
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2096 /* Mouse highlight may be displayed again. */
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2097 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
2098
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2099 BLOCK_INPUT;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2100 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2101 EnableScreenUpdates ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2102 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2103 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
2104 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2105 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2106
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2107
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2108 /* 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
2109 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
2110 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
2111
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2112 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2113 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
2114 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
2115 {
55539
db942c4b4345 macterm.c (x_flush, XTframe_up_to_date): use FRAME_MAC_P
Steven Tamm <steventamm@mac.com>
parents: 55412
diff changeset
2116 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
2117 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2118 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
2119
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2120 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
2121 || 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
2122 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2123 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2124 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
2125 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
2126 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
2127 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
2128 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
2129 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2130 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2131 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2132 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2133
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 /* 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
2136 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
2137 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
2138 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
2139 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
2140 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
2141
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2142 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2143 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
2144 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
2145 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2146 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
2147 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
2148 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
2149
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2150 xassert (w);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2151
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2152 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
2153 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
2154
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2155 /* 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
2156 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
2157 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
2158 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
2159 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
2160 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
2161 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
2162 && 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
2163 && (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
2164 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
2165 width != 0)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2166 && (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
2167 height > 0))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2168 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2169 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
2170
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2171 /* 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
2172 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
2173 && 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
2174 y -= width;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2175
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2176 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2177 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
2178 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
2179 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2180 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2181 }
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 /* 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
2185 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
2186 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
2187 drawn. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2188
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2189 static void
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2190 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
2191 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
2192 struct glyph_row *row;
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2193 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
2194 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2195 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
2196 Display *display = FRAME_MAC_DISPLAY (f);
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2197 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
2198 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
2199 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
2200
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2201 #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
2202 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
2203 {
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2204 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
2205
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2206 #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
2207 /* 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
2208 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
2209 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
2210 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
2211 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
2212 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
2213 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2214 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
2215 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2216
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2217 /* 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
2218 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
2219 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
2220 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
2221 && 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
2222 || (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
2223 && 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
2224 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2225 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
2226
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2227 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
2228 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2229 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
2230 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
2231 * 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
2232
81569
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2233 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
2234 && (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
2235 || 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
2236 {
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2237 /* 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
2238 extension. */
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2239 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
2240
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2241 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
2242 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
2243 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
2244 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
2245 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
2246 }
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2247
81570
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2248 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
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 (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
2251 {
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2252 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
2253 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
2254 }
bcf93d8a866b (x_draw_fringe_bitmap) [MAC_OSX]: Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81569
diff changeset
2255 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
2256 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
2257 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2258 }
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
81569
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2261 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
2262 {
bfb314508332 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81410
diff changeset
2263 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
2264 /* 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
2265 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
2266 }
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2267
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2268 #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
2269 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
2270 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
2271 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2272 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2273 #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
2274
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2275 /* 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
2276 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
2277 if (p->y < rowY)
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2278 {
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2279 /* 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
2280 visible last row. */
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2281 int oldY = row->y;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2282 int oldVH = row->visible_height;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2283 row->visible_height = p->h;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2284 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
2285 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
2286 row->y = oldY;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2287 row->visible_height = oldVH;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2288 }
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2289 else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2290 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
2291
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2292 #ifndef MAC_OSX
53885
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
2293 if (p->bx >= 0 && !p->overlay_p)
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2294 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2295 #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
2296 /* 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
2297 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
2298 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
2299 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
2300 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
2301 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
2302 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2303 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
2304 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2305
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2306 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
2307
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2308 #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
2309 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
2310 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
2311 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2312 }
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
2313 #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
2314
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2315 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
2316 #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
2317 && 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
2318 #endif
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2319 )
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2320 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2321 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
2322
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2323 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
2324 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
2325 (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
2326 ? (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
2327 : 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
2328 : 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
2329 #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
2330 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
2331 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
2332 #else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2333 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
2334 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
2335 #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
2336 XSetForeground (display, face->gc, gcv.foreground);
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2337 }
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2338
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2339 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
2340 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2341
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2342 #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
2343 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
2344 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
2345 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
2346 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
2347 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
2348 {
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 i;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2350 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
2351
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2352 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
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 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
2355 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
2356 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
2357 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
2358 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
2359 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2360
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2361 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
2362 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
2363
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2364 BLOCK_INPUT;
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2365
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2366 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
2367 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
2368 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
2369 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2370 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
2371 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
2372 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
2373 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
2374 }
78968
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2375
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2376 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
2377 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2378
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2379 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
2380 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
2381 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
2382 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2383 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
2384 return;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2385
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2386 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
2387 {
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2388 BLOCK_INPUT;
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2389 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
2390 UNBLOCK_INPUT;
6d6dc60c958b (mac_load_query_font): Fix missing return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78681
diff changeset
2391 }
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2392 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
2393 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2394 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2395
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2396
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2397 /* 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
2398 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
2399 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
2400 rarely happens). */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2401
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2402 static void
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
2403 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
2404 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2405 }
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 /* 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
2408 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
2409
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2410 static void
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
2411 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
2412 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2413 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2414
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2415
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2416
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2417 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2418 Display Iterator
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2419 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2420
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2421 /* 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
2422
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2423 static XCharStruct *x_per_char_metric P_ ((XFontStruct *, XChar2b *));
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2424 static int mac_encode_char P_ ((int, XChar2b *, struct font_info *, int *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2425
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2426
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2427 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
2428 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
2429 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
2430 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
2431 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2432 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
2433 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
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 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
2436 pcm++;
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 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2439
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2440 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
2441 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
2442 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
2443 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2444 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
2445
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2446 /* 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
2447 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
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
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2450 /* 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
2451 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
2452
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2453 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
2454 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
2455 XFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2456 XChar2b *char2b;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2457 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2458 /* 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
2459 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
2460
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2461 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
2462
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2463 #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
2464 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
2465 {
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2466 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
2467
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2468 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
2469 {
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2470 *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
2471 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
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 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
2474 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
2475 {
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2476 BLOCK_INPUT;
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2477 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
2478 (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
2479 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
2480 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
2481 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2482 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2483 else
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 #endif
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2486 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
2487 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2488 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
2489 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2490 /* 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
2491 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
2492 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
2493 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
2494 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
2495 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
2496 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
2497 && 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
2498 && 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
2499 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
2500 + (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
2501 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2502 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2503 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2504 /* 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
2505 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
2506 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
2507 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
2508
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2509 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
2510 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
2511
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2512 where:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2513
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2514 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
2515 / = integer division
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2516 \ = integer modulus */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2517 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
2518 && 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
2519 && 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
2520 && 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
2521 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2522 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
2523 + ((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
2524 * (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
2525 + (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
2526 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2527 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2528 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2529 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2530 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2531 /* 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
2532 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
2533 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
2534 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
2535 && 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
2536 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
2537 }
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2538 #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
2539 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2540 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2541
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2542 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
2543 || (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
2544 #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
2545 && (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
2546 #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
2547 ))
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2548 ? NULL : pcm);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2549 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2550
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2551 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2552 */
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2553
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2554 static XCharStruct *
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2555 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
2556 XFontStruct *font;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2557 XChar2b *char2b;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2558 int font_type;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2559 {
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2560 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
2561 }
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 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2564 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
2565 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
2566
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2567 static int
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2568 mac_encode_char (c, char2b, font_info, two_byte_p)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2569 int c;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2570 XChar2b *char2b;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2571 struct font_info *font_info;
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2572 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
2573 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2574 int charset = CHAR_CHARSET (c);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2575 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
2576
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2577 /* 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
2578 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
2579 fixed encoding. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2580 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
2581 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2582 /* 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
2583 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
2584
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2585 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
2586 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
2587 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2588 ccl->reg[0] = charset;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2589 ccl->reg[1] = char2b->byte2;
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2590 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
2591 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2592 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2593 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2594 ccl->reg[0] = charset;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2595 ccl->reg[1] = char2b->byte1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2596 ccl->reg[2] = char2b->byte2;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2597 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2598
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2599 ccl_driver (ccl, NULL, NULL, 0, 0, NULL);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2600
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2601 /* 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
2602 program. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2603 if (font->max_byte1 == 0) /* 1-byte font */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2604 char2b->byte1 = 0, char2b->byte2 = ccl->reg[1];
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2605 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2606 char2b->byte1 = ccl->reg[1], char2b->byte2 = ccl->reg[2];
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2607 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2608 else if (font_info->encoding[charset])
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2609 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2610 /* 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
2611 encoding numbers. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2612 int enc = font_info->encoding[charset];
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2613
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2614 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
2615 && 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
2616 char2b->byte1 |= 0x80;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2617
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2618 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
2619 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
2620
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 == 4)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2622 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2623 int sjis1, sjis2;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2624
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2625 ENCODE_SJIS (char2b->byte1, char2b->byte2, sjis1, sjis2);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2626 char2b->byte1 = sjis1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2627 char2b->byte2 = sjis2;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2628 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2629 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2630
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2631 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
2632 *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
2633
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2634 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
2635 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2636
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 Glyph display
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
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2643
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2644
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2645 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
2646 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
2647 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
2648 int));
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_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
2650 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
2651 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
2652 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
2653 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
2654 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
2655 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
2656 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
2657 /*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
2658 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
2659 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
2660 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
2661 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
2662 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
2663 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
2664 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
2665 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
2666 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
2667 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
2668 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
2669 Rect *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2670 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
2671 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
2672
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2673 #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
2674 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
2675 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2676
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2677
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2678 /* 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
2679 face. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2680
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2681 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2682 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
2683 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
2684 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2685 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
2686 && 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
2687 && 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
2688 && !s->cmp)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2689 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
2690 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2691 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2692 /* 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
2693 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2694 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
2695
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2696 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
2697 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
2698
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2699 /* 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
2700 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
2701 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
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->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
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->face->foreground;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2706
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2707 /* 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
2708 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
2709 && 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
2710 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2711 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
2712 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
2713 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2714
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2715 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
2716 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
2717 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
2718
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2719 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
2720 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
2721 mask, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2722 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2723 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
2724 = 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
2725
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2726 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
2727 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2728 }
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 /* 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
2732
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2733 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2734 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
2735 struct glyph_string *s;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2736 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2737 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
2738 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
2739
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2740 /* 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
2741 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
2742 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
2743 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
2744 face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2745
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2746 if (s->first_glyph->type == CHAR_GLYPH)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2747 face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2748 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2749 face_id = FACE_FOR_CHAR (s->f, face, 0);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2750 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
2751 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
2752
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2753 /* 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
2754 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
2755 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
2756 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2757 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2758 /* 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
2759 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
2760 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2761 unsigned long mask;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2762
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2763 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
2764 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
2765 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
2766 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
2767 mask = GCForeground | GCBackground | GCFont;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2768
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2769 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
2770 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
2771 mask, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2772 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2773 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
2774 = XCreateGC (s->display, s->window, mask, &xgcv);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2775
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2776 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
2777 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2778
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2779 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
2780 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2781
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2782
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2783 /* 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
2784 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
2785 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
2786
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2787 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
2788 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
2789 struct glyph_string *s;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2790 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2791 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
2792 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2793
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 /* 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
2796 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
2797 pattern. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2798
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2799 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
2800 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
2801 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
2802 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2803 PREPARE_FACE_FOR_DISPLAY (s->f, s->face);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2804
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2805 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
2806 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2807 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
2808 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
2809 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2810 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
2811 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2812 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
2813 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
2814 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2815 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
2816 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2817 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
2818 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
2819 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2820 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
2821 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2822 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
2823 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
2824 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2825 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
2826 || 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
2827 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2828 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
2829 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
2830 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2831 else
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 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
2834 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
2835 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2836
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2837 /* 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
2838 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
2839 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2840
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 /* 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
2843 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
2844
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2845 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
2846 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
2847 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
2848 {
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2849 Rect rects[MAX_CLIP_RECTS];
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2850 int n;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2851
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2852 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
2853 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
2854 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2855
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2856
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2857 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2858 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
2859 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
2860
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2861 static void
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2862 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
2863 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
2864 {
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2865 if (!(s->cmp == NULL
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2866 && 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
2867 return;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2868
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2869 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
2870 #if USE_ATSUI
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2871 || s->font->mac_style
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2872 #endif
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2873 )
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2874 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2875 XCharStruct cs;
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 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
2878 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
2879 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
2880 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2881 else
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 Rect r;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2884 MacFontStruct *font = s->font;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2885
73133
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2886 #if USE_CG_DRAWING
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2887 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
2888 #endif
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2889 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
2890
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2891 TextFont (font->mac_fontnum);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2892 TextSize (font->mac_fontsize);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2893 TextFace (font->mac_fontface);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2894
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2895 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
2896
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2897 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
2898 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
2899 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2900 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2901
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2902
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2903 /* 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
2904
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2905 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
2906 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
2907 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
2908 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
2909 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2910 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
2911 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2912
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 /* 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
2915 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
2916 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
2917 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
2918 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
2919
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2920 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2921 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
2922 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
2923 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
2924 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2925 /* 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
2926 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
2927 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
2928 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2929 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
2930
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2931 #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
2932 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
2933 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2934 /* 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
2935 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
2936 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
2937 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
2938 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
2939 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
2940 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
2941 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
2942 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2943 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2944 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2945 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
2946 || 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
2947 || 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
2948 || force_p)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2949 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2950 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
2951 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
2952 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
2953 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
2954 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2955 }
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 /* 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
2960
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2961 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2962 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
2963 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
2964 {
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2965 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
2966
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2967 /* 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
2968 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
2969 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
2970 && s->first_glyph->left_box_line_p)
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
2971 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
2972 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2973 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
2974
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2975 /* 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
2976 loaded. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2977 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
2978 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2979 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
2980 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2981 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
2982 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
2983 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
2984 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
2985 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2986 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2987 else
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 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
2990 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
2991
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2992 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
2993 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
2994
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2995 /* 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
2996 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
2997 #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
2998 && 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
2999 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
3000 )
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3001 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
3002 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
3003
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3004 /* 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
3005 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
3006 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
3007 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
3008 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
3009 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
3010 || (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
3011 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
3012 else
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 = 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
3014
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3015 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
3016 #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
3017 || 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
3018 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3019 )
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
3020 #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
3021 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
3022 && 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
3023 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
3024 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
3025 ;
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3026 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3027 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
3028 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
3029 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
3030 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
3031 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
3032 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
3033 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
3034 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
3035 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3036 }
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 /* 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
3039
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3040 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3041 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
3042 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
3043 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3044 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
3045
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3046 /* 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
3047 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
3048 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
3049 && s->first_glyph->left_box_line_p)
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3050 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
3051 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3052 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
3053
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3054 /* 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
3055 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
3056 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
3057 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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3059 /* 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
3060 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
3061 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
3062 {
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->gidx == 0)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3064 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
3065 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
3066 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3067 else
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 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
3070 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
3071 /* 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
3072 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
3073 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
3074 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
3075 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
3076 else
1c0e611785d0 (x_draw_composite_glyph_string_foreground): Draw rectangle
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78501
diff changeset
3077 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
3078 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
3079 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
3080 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
3081 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3082 }
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 #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
3086
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3087 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
3088
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3089
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3090 /* 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
3091 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
3092
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3093 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
3094 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
3095 Widget widget;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3096 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3097 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
3098 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
3099 struct frame *f;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3100
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3101 dpyinfo = x_display_info_for_display (XtDisplay (widget));
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 /* 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
3104 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
3105 (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
3106 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
3107 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
3108 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
3109
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3110 /* 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
3111 on that frame to get the right gamma correction value. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3112 for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3113 if (GC_FRAMEP (XCAR (tail))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3114 && (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
3115 (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
3116 && 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
3117 && 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
3118 return f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3119
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3120 abort ();
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
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 /* 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
3125 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
3126 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
3127 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
3128
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3129 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3130 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
3131 Widget widget;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3132 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3133 XColor *color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3134 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3135 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
3136 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
3137 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3138
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 #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
3141
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3142 #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
3143
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3144 /* 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
3145 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
3146 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
3147 color allocated. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3148
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3149 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3150 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
3151 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
3152 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3153 XColor *color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3154 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3155 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
3156 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
3157 int rc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3158
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3159 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
3160 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
3161 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
3162 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3163 /* 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
3164 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
3165 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
3166 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
3167 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
3168 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
3169 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
3170 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
3171
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3172 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
3173 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
3174 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
3175
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3176 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
3177 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3178 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
3179 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
3180 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
3181 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
3182
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3183 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
3184 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3185 nearest = i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3186 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
3187 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3188 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3189
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3190 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
3191 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
3192 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
3193 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
3194 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3195
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3196 #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
3197 if (rc)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3198 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
3199 #endif /* DEBUG_X_COLORS */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3200
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3201 return rc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3202 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3203
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 /* 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
3206 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
3207 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
3208
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3209 unsigned long
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3210 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
3211 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
3212 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
3213 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3214 XColor color;
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 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
3217 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3218 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
3219 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
3220 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3221 #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
3222 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
3223 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3224 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
3225 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3226
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 /* 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
3229 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
3230 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
3231
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3232 unsigned long
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3233 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
3234 Display *dpy;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3235 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3236 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
3237 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3238 XColor color;
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 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
3241 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3242 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
3243 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
3244 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3245 #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
3246 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
3247 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3248 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
3249 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3250
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3251 #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
3252
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3253
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3254 /* 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
3255 boosted.
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3256
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3257 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
3258 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
3259 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
3260 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
3261 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
3262
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3263 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
3264 (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
3265 #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
3266
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3267
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3268 /* 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
3269 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
3270 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
3271 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
3272 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
3273 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
3274
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3275 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3276 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
3277 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
3278 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
3279 double factor;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3280 int delta;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3281 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3282 unsigned long new;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3283 long bright;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3284
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3285 /* 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
3286 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
3287
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3288 /* 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
3289 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
3290 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
3291 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
3292 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
3293
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3294 /* Calculate brightness of COLOR. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3295 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
3296 + 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
3297
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3298 /* 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
3299 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
3300 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
3301 /* 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
3302 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
3303 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3304 /* 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
3305 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
3306 /* The additive adjustment. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3307 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
3308
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3309 if (factor < 1)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3310 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
3311 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
3312 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
3313 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3314 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
3315 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
3316 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
3317 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3318
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3319 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
3320 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
3321 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
3322 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
3323
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3324 /* 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
3325 /* 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
3326
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3327 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
3328 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3329
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3330 *color = new;
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 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3333 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3334
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3335
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3336 /* 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
3337 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
3338 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
3339 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
3340 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
3341 be allocated, use DEFAULT_PIXEL, instead. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3342
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3343 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3344 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
3345 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
3346 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
3347 double factor;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3348 int delta;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3349 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
3350 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3351 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3352 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
3353 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
3354 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
3355 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
3356 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
3357
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3358 /* 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
3359
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3360 /* 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
3361 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
3362 pixel = background;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3363 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
3364 && 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
3365 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3366 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
3367 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
3368 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3369
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3370 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
3371 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3372 #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
3373 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
3374 mask |= GCStipple;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3375 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3376 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
3377 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3378 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3379 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
3380 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3381
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3382
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3383 /* 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
3384
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3385 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3386 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
3387 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
3388 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3389 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
3390 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
3391
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3392 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
3393 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
3394 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
3395 && s->img->pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3396 && !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
3397 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
3398 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3399 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3400 XGCValues xgcv;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3401
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3402 /* 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
3403 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
3404 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
3405 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3406
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3407 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
3408 || 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
3409 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3410 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
3411 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
3412 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
3413 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
3414 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
3415 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3416 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3417
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 /* 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
3420 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
3421 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
3422 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
3423 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
3424 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
3425 when drawing. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3426
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3427 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3428 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
3429 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
3430 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
3431 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
3432 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
3433 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
3434 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3435 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
3436 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3437 GC gc;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3438
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3439 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
3440 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
3441 else
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->black_relief.gc;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3443 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
3444
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3445 /* Top. */
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3446 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
3447 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
3448 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
3449 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
3450 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
3451
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3452 /* Left. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3453 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
3454 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
3455 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
3456 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
3457
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3458 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
3459 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
3460 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
3461 else
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->white_relief.gc;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3463 mac_set_clip_rectangles (dpy, gc, clip_rect, 1);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3464
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3465 /* Bottom. */
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3466 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
3467 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
3468 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
3469 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
3470 right_x + 1 - i * right_p, bottom_y - i);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3471
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3472 /* Right. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3473 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
3474 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
3475 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
3476 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
3477
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3478 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
3479 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3480
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 /* 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
3483 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
3484 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
3485 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
3486 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
3487 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
3488
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3489 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3490 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
3491 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
3492 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
3493 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
3494 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
3495 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3496 XGCValues xgcv;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3497
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
3498 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
3499 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
3500 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
3501
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3502 /* Top. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3503 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
3504 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
3505
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3506 /* Left. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3507 if (left_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3508 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
3509 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
3510
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3511 /* Bottom. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3512 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
3513 right_x - left_x + 1, width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3514
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3515 /* Right. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3516 if (right_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3517 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
3518 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
3519
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
3520 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
3521 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
3522 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3523
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3524
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3525 /* 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
3526
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3527 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3528 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
3529 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
3530 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3531 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
3532 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
3533 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
3534 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
3535
59655
369714ad80ed (x_draw_glyph_string_box): Fix last_x for full width rows.
Kim F. Storm <storm@cua.dk>
parents: 59586
diff changeset
3536 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
3537 ? 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
3538 : window_box_right (s->w, s->area));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3539
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3540 /* 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
3541 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
3542 ? 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
3543 : 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
3544
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3545 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
3546 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
3547 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
3548 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
3549 ? last_x - 1
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3550 : 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
3551 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
3552 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
3553
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3554 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
3555 || (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
3556 && (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
3557 || 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
3558 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
3559 || (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
3560 && (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
3561 || s->next->hl != s->hl)));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3562
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3563 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
3564
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3565 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
3566 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
3567 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
3568 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3569 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3570 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
3571 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
3572 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
3573 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3574 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3575
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 /* 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
3578
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3579 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3580 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
3581 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
3582 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3583 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
3584 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
3585
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3586 /* 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
3587 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
3588 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
3589 && 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
3590 && s->slice.x == 0)
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3591 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
3592
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3593 /* 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
3594 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
3595 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
3596 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
3597 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
3598 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
3599
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3600 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
3601 {
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
3602 x_set_glyph_string_clipping (s);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
3603
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3604 #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
3605 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
3606 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
3607 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
3608 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3609 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
3610 #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
3611 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
3612 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
3613 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
3614 #else
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3615 ;
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3616 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3617 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3618 {
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3619 #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
3620 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
3621 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
3622 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
3623 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3624
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3625 /* 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
3626 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
3627 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
3628 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
3629 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
3630 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
3631 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
3632 {
0b6da8b7d7ac (x_draw_image_foreground, x_draw_image_foreground_1):
Kim F. Storm <storm@cua.dk>
parents: 45111
diff changeset
3633 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
3634 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
3635 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
3636 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
3637 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
3638 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3639 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3640 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3641 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3642 /* 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
3643 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
3644 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
3645 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3646
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 /* 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
3649
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3650 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3651 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
3652 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
3653 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3654 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
3655 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
3656 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
3657 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
3658
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3659 /* 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
3660 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
3661 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
3662 && 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
3663 && s->slice.x == 0)
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3664 x += eabs (s->face->box_line_width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3665
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3666 /* 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
3667 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
3668 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
3669 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
3670 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
3671 y += s->img->vmargin;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3672
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3673 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
3674 || 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
3675 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3676 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
3677 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
3678 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3679 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3680 {
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3681 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
3682 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
3683 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3684
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3685 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
3686 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
3687 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
3688 y1 = y + s->slice.height + thick - 1;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3689
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3690 x_setup_relief_colors (s);
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3691 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
3692 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
3693 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
3694 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
3695 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
3696 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
3697 &r);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3698 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3699
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 /* 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
3702 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
3703
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3704 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3705 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
3706 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
3707 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
3708 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3709 #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
3710 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
3711 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3712 /* 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
3713 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
3714 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
3715 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
3716 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3717 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3718 #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
3719 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
3720 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3721
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3722
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3723 /* 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
3724
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3725 s->y
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3726 s->x +-------------------------
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3727 | 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
3728 |
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3729 | +-------------------------
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3730 | | 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
3731 | |
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3732 | | +-------------------
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3733 | | | the image
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 */
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3738 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
3739 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
3740 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3741 int x, y;
85257
75ad106491dd Replace `abs' with `eabs'.
Eli Zaretskii <eliz@gnu.org>
parents: 85114
diff changeset
3742 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
3743 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
3744 int height;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3745
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3746 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
3747
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3748
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3749 /* 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
3750 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
3751 flickering. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3752 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
3753 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
3754 || 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
3755 || 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
3756 || 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
3757 || 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
3758 || 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
3759 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3760 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
3761 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
3762 && 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
3763 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
3764
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3765 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
3766 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
3767 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
3768
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3769 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
3770
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3771 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
3772 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3773
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3774 /* Draw the foreground. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3775 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
3776
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3777 /* 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
3778 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
3779 || 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
3780 || 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
3781 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
3782 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3783
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3784
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3785 /* 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
3786
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3787 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3788 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
3789 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
3790 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3791 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
3792
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3793 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
3794 && !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
3795 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3796 /* 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
3797 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
3798 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
3799 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
3800
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3801 if (x < left_x)
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 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
3804 x = left_x;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3805 }
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3806 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
3807
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3808 /* Draw cursor. */
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3809 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
3810
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3811 /* 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
3812 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
3813 {
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3814 int y = s->y;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3815 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
3816 Rect r;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3817 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
3818
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3819 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
3820 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
3821 && 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
3822 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3823 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
3824 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
3825 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3826 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3827 gc = s->face->gc;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3828
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3829 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
3830 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
3831
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3832 #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
3833 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
3834 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3835 /* 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
3836 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
3837 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
3838 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
3839 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3840 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3841 #endif /* MAC_TODO */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3842 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
3843 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3844 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3845 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
3846 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3847 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
3848 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
3849
72470
3b82c004bf25 (x_draw_stretch_glyph_string): It is ok to draw a
Kim F. Storm <storm@cua.dk>
parents: 71965
diff changeset
3850 /* 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
3851 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
3852 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
3853 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3854 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
3855 x = left_x;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3856 }
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3857 if (background_width > 0)
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3858 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
3859 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3860
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3861 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
3862 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3863
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 /* 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
3866
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3867 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3868 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
3869 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
3870 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3871 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
3872
59718
d4cb255b034d * dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents: 59655
diff changeset
3873 /* 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
3874 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
3875 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
3876 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
3877 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
3878 && 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
3879 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3880 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
3881 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
3882 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
3883 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
3884 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3885
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3886 /* 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
3887 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
3888
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3889 /* 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
3890 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
3891 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
3892 && 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
3893 && (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
3894 || 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
3895
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3896 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3897 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
3898 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
3899 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
3900 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
3901 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
3902 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3903 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3904 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
3905
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3906 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
3907 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3908 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
3909 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
3910 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3911
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3912 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
3913 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
3914 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3915
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3916 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
3917 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
3918 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
3919 else
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3920 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
3921 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
3922 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3923
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3924 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
3925 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
3926 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
3927 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3928 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
3929 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
3930 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3931
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3932 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3933 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3934 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3935
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
3936 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
3937 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3938 /* Draw underline. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3939 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
3940 {
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3941 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
3942 int y;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3943
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3944 #if 0
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3945 /* 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
3946 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
3947 #endif
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3948 h = 1;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3949
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3950 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
3951 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
3952 {
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3953 /* 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
3954 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
3955 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
3956 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
3957
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3958 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
3959 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
3960
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3961 #if 0
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3962 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
3963 && 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
3964 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
3965 else
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3966 #endif
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3967 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
3968 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
3969 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3970
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3971 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
3972 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
3973 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
3974 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3975 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3976 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3977 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
3978 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
3979 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
3980 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
3981 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
3982 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3983 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3984
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3985 /* Draw overline. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3986 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
3987 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3988 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
3989
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3990 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
3991 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
3992 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
3993 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3994 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3995 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3996 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
3997 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
3998 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
3999 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
4000 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
4001 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4002 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4003
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4004 /* 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
4005 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
4006 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4007 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
4008 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
4009
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4010 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
4011 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
4012 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
4013 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4014 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4015 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4016 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
4017 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
4018 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
4019 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
4020 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
4021 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4022 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4023
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
4024 /* 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
4025 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
4026 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
4027 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4028
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4029 /* Reset clipping. */
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
4030 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
4031 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4032
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4033 /* 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
4034
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4035 void
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4036 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
4037 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4038 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
4039 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4040 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
4041 x, y, width, height,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4042 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
4043 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4044
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4045 /* 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
4046 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
4047
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4048 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4049 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
4050 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
4051 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4052 abort ();
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
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 /* 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
4057 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
4058
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4059 static void
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
4060 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
4061 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4062 /* 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
4063 longer visible. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4064 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
4065 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
4066 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
4067
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4068 /* 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
4069 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
4070 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4071 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
4072
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4073 /* 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
4074 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
4075 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
4076
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4077 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
4078 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4079 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4080
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 /* 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
4084
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4085 /* 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
4086 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
4087
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4088 #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
4089
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
4090
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4091 /* 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
4092 *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
4093
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4094 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4095 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
4096 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
4097 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4098 /* 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
4099 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
4100 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
4101 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4102 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
4103 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
4104 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
4105 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4106
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4107 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
4108 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4109 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
4110 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
4111 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
4112 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4113
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4114 /* 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
4115 positive. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4116 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
4117 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
4118
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4119 /* 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
4120 negative. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4121 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
4122 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4123
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4124 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4125 XTflash (f)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4126 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
4127 {
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4128 /* 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
4129 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
4130 /* 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
4131 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
4132 /* 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
4133 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
4134 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
4135
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4136 int width;
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 /* 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
4139 edge it is next to. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4140 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
4141 {
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4142 case vertical_scroll_bar_left:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4143 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
4144 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4145
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4146 case vertical_scroll_bar_right:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4147 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
4148 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4149
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4150 default:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4151 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4152 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4153
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4154 width = flash_right - flash_left;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4155
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4156 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4157
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4158 /* 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
4159 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
4160 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4161 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
4162 (FRAME_INTERNAL_BORDER_WIDTH (f)
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4163 + 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
4164 width, flash_height);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4165 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
4166 (height - flash_height
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4167 - FRAME_INTERNAL_BORDER_WIDTH (f)),
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4168 width, flash_height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4169 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4170 else
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4171 /* 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
4172 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
4173 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
4174
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4175 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
4176
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4177 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4178 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
4179
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4180 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
4181
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4182 /* 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
4183 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
4184 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
4185 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
4186
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4187 /* 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
4188 available. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4189 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
4190 {
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4191 struct timeval current;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4192 struct timeval timeout;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4193
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4194 EMACS_GET_TIME (current);
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 /* 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
4197 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
4198 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4199
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4200 /* How long `select' should wait. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4201 timeout.tv_sec = 0;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4202 timeout.tv_usec = 10000;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4203
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4204 /* 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
4205 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
4206 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4207 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4208
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4209 /* 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
4210 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
4211 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4212 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
4213 (FRAME_INTERNAL_BORDER_WIDTH (f)
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4214 + 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
4215 width, flash_height);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4216 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
4217 (height - flash_height
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4218 - FRAME_INTERNAL_BORDER_WIDTH (f)),
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4219 width, flash_height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4220 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4221 else
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4222 /* 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
4223 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
4224 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
4225
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4226 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
4227
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4228 UNBLOCK_INPUT;
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4231 #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
4232
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4233
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4234 /* 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
4235
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4236 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4237 XTring_bell ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4238 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4239 struct frame *f = SELECTED_FRAME ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4240
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4241 #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
4242 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
4243 XTflash (f);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4244 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4245 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4246 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4247 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4248 SysBeep (1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4249 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
4250 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4251 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4252 }
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 /* 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
4256 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
4257 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
4258 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
4259
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
4260 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
4261 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
4262 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
4263 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4264 /* 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
4265 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4266
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 Line Dance
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4271 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4272
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4273 /* 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
4274 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
4275
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4276 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4277 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
4278 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
4279 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4280 abort ();
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
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 /* 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
4285
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4286 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4287 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
4288 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
4289 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
4290 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4291 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
4292 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
4293
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4294 /* 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
4295 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
4296 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
4297 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
4298
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4299 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
4300 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
4301 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
4302
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4303 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
4304 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4305 /* 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
4306 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
4307 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
4308 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
4309 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4310 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
4311 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4312 else
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 /* 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
4315 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
4316 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
4317 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
4318 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4319 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
4320 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4321
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4322 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4323
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4324 /* 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
4325 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
4326 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
4327
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4328 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
4329 x, from_y,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4330 width, height,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4331 x, to_y);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4332
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4333 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4334 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4335
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4336
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 Exposure Events
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4340 ***********************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4341
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4342
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4343 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4344 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
4345 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
4346 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4347 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
4348 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4349
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4350 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4351 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
4352 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
4353 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4354 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
4355 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4356
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4357 /* 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
4358 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
4359 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
4360 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
4361 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
4362
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4363 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4364 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
4365 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
4366 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
4367 {
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 *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
4369
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4370 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
4371 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4372 /* 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
4373 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
4374 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
4375
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4376 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
4377 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
4378
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4379 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4380 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
4381 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
4382 selected_frame);
51048
7ac9c3bea5ea (Fselect_window): Add optional arg `norecord'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 50701
diff changeset
4383 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
4384 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
4385 #endif /* ! 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4386
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4387 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
4388 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
4389 else
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 = 0;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
4391
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
4392 #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
4393 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
4394 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
4395 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4396 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4397
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4398 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
4399 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4400
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4401 /* 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
4402 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
4403 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
4404
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4405 static void
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4406 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
4407 int type;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4408 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
4409 struct frame *frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4410 struct input_event *bufp;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4411 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4412 if (type == activeFlag)
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 (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
4415 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4416 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
4417 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
4418
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4419 /* 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
4420 for a switch-frame event we don't need. */
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4421 if (GC_NILP (Vterminal_frame)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4422 && GC_CONSP (Vframe_list)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4423 && !GC_NILP (XCDR (Vframe_list)))
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4424 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4425 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
4426 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
4427 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4428 }
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 else
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 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
4433 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4434 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
4435 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
4436 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4437 }
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 /* 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
4441 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
4442
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4443 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
4444
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4445 static void
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4446 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
4447 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
4448 const EventRecord *event;
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4449 struct input_event *bufp;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4450 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4451 struct frame *frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4452
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4453 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
4454 if (! frame)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4455 return;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4456
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4457 /* 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
4458 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
4459 dpyinfo, frame, bufp);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4460 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4461
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4462
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4463 /* 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
4464
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4465 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4466 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
4467 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
4468 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4469 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
4470 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4471
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4472 /* 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
4473 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
4474 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
4475
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4476 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
4477 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
4478 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
4479
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4480 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4481 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
4482 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
4483 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4484 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
4485 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4486
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4487 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4488 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
4489 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
4490 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4491 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
4492
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4493 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
4494 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4495 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
4496 = ((GC_FRAMEP (FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame)))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4497 ? 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
4498 : 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
4499 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
4500 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4501 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
4502 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
4503 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4504 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4505 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4506 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
4507
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4508 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
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 (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 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
4512 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
4513 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
4514 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4515 }
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 /* 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
4520
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4521 char *
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4522 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
4523 int keysym;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4524 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4525 char *value;
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 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4528 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4529 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
4530 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4531 value = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4532 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4533 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4534
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4535 return value;
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
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 /* 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
4541 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
4542
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4543 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
4544 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
4545 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
4546 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
4547
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4548 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
4549 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
4550
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
4551 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
4552 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
4553 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
4554 Point *pos;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4555 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4556 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
4557 #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
4558 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4559 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4560
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4561 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
4562 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
4563 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
4564
76535
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4565 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
4566 #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
4567 && !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
4568 #else
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, &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
4570 #endif
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4571 )
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4572 {
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4573 /* 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
4574 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
4575 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
4576 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
4577 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
4578 if (!dpyinfo->grabbed)
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
4579 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
4580 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
4581 }
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4582
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4583 /* 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
4584 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
4585 || !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
4586 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4587 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
4588 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
4589 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
4590 /* 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
4591 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
4592 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
4593 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
4594 }
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
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 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
4597 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4598
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 Mouse Face
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
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4604 /* 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
4605
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4606 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4607 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
4608 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4609 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
4610 && 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
4611 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
4612 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
4613 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
4614 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4615
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4616
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4617 static struct frame *
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4618 mac_focus_frame (dpyinfo)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4619 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
4620 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4621 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
4622 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
4623 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4624 /* 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
4625 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
4626 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
4627 return SELECTED_FRAME ();
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4628 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4629
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4630
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4631 /* 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
4632 *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
4633
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4634 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
4635 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
4636 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
4637 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
4638
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4639 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
4640 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
4641 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
4642
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4643 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
4644 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
4645
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4646 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
4647
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4648 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
4649 movement. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4650
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4651 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4652 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
4653 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
4654 int insist;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4655 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
4656 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
4657 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
4658 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
4659 {
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4660 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
4661
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4662 BLOCK_INPUT;
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 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
4665 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
4666 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4667 {
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4668 Lisp_Object frame, tail;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4669
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4670 /* 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
4671 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
4672 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
4673
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4674 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
4675
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4676 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
4677 && 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
4678 f1 = last_mouse_frame;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4679 else
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4680 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
4681
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4682 if (f1)
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 /* 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
4685 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
4686 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
4687 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
4688 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
4689 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
4690 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
4691 Point mouse_pos;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4692
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
4693 #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
4694 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
4695 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
4696 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
4697 #else
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4698 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
4699 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
4700 #endif
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4701 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
4702 &last_mouse_glyph);
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
4703 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
4704
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4705 *bar_window = Qnil;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4706 *part = 0;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4707 *fp = f1;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4708 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
4709 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
4710 *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
4711 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4712 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
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 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4715 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4716
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4717
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4718 /************************************************************************
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4719 Toolkit scroll bars
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
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4722 #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
4723
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4724 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
4725 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
4726 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
4727 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
4728 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
4729 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
4730 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
4731 Rect *));
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4732 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
4733 ControlPartCode, Point,
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4734 struct input_event *));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4735 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
4736 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
4737 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
4738 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
4739 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
4740 int, int, int));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4741
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4742 /* 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
4743
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4744 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
4745
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4746 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
4747
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4748 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
4749
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4750 #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
4751 #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
4752
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4753 static pascal void
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4754 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
4755 EventLoopTimerRef timer;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4756 void *data;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4757 {
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4758 OSStatus err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4759
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4760 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
4761 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4762 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
4763 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4764
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4765 static OSStatus
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4766 install_scroll_bar_timer ()
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4767 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4768 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
4769
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4770 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
4771 scroll_bar_timer_callbackUPP =
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4772 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
4773
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4774 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
4775 /* 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
4776 kEventDurationForever as delays. */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4777 return
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4778 InstallEventLoopTimer (GetCurrentEventLoop (),
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4779 kEventDurationForever, kEventDurationForever,
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4780 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
4781 &scroll_bar_timer);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4782 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4783
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4784 static OSStatus
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4785 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
4786 EventTimerInterval delay;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4787 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4788 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
4789 install_scroll_bar_timer ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4790
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4791 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
4792
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4793 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
4794 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4795
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4796 static int
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4797 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
4798 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4799 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4800 switch (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 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
4803 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
4804 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
4805 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
4806 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
4807 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4808
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4809 return -1;
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
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4812 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
4813 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
4814 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4815 int part;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4816 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4817 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4818 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
4819 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
4820 bufp->arg = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4821 bufp->part = part;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4822 bufp->code = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4823 XSETINT (bufp->x, 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4824 XSETINT (bufp->y, 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4825 bufp->modifiers = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4826 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4827
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4828 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
4829 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
4830 ControlRef ch;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4831 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4832 Rect *rect;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4833 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4834 RgnHandle region = NewRgn ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4835 OSStatus err;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4836
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4837 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
4838 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4839 GetRegionBounds (region, rect);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4840 DisposeRgn (region);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4841
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4842 return err;
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
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4845 static void
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4846 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
4847 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4848 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
4849 Point mouse_pos;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4850 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4851 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4852 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
4853
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4854 if (part < 0)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4855 return;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4856
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4857 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
4858 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4859 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
4860 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
4861 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
4862 bar->dragging = Qnil;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4863 }
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4864 else
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 Rect r;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4867
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4868 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
4869 kControlIndicatorPart, &r);
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4870 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
4871 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4872
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4873 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
4874 tracked_scroll_bar = bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4875 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4876
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4877 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
4878 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
4879 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4880 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4881 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4882 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
4883 || (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
4884 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
4885
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4886 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
4887 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
4888
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4889 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
4890 bar->dragging = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4891 tracked_scroll_bar = NULL;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4892 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4893
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4894 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
4895 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
4896 WindowRef win;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4897 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4898 Point mouse_pos;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4899 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4900 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4901 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
4902
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4903 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
4904 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4905 int top, top_range;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4906 Rect r;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4907
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4908 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
4909 kControlIndicatorPart, &r);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4910
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4911 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
4912 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
4913
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4914 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
4915 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
4916
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4917 if (top < 0)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4918 top = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4919 if (top > top_range)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4920 top = top_range;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4921
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4922 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
4923 XSETINT (bufp->x, top);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4924 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
4925 }
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4926 else
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4927 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4928 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4929 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
4930
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4931 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
4932 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4933 else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4934 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4935 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
4936
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4937 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
4938 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4939 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
4940 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
4941 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
4942 && 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
4943 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4944 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4945
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4946 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
4947 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
4948 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
4949 && 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
4950 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4951 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4952 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4953 }
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 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
4956 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
4957 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
4958 || 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
4959 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4960 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
4961 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
4962 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
4963 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
4964 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4965 }
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 /* 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
4969 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
4970
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4971 static void
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4972 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
4973 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4974 int portion, position, whole;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4975 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
4976 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
4977 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
4978
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4979 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
4980 return;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4981
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4982 if (whole <= portion)
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4983 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
4984 else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4985 {
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4986 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
4987
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4988 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
4989 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
4990 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
4991 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
4992 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4993
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4994 BLOCK_INPUT;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4995
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4996 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
4997 || 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
4998 || 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
4999 {
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
5000 /* 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
5001 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
5002
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 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
5004 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
5005 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
5006
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 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
5008 }
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
5009
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5010 UNBLOCK_INPUT;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5011 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5012
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5013 #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
5014
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5015
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5016
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5017 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5018 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
5019 ************************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5020
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5021 /* 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
5022 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
5023 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
5024 scroll bar. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5025
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5026 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
5027 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
5028 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
5029 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
5030 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5031 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
5032 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
5033 = 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
5034 Rect r;
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5035 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
5036
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5037 BLOCK_INPUT;
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 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
5040 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
5041 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
5042 r.bottom = disp_top + disp_height;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5043
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5044 #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
5045 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
5046 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5047 #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
5048 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
5049 #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
5050 false,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5051 #else
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5052 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
5053 #endif
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5054 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
5055 #else
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5056 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
5057 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
5058 #endif
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5059 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
5060
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5061 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
5062 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
5063 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
5064 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
5065 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
5066 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
5067 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
5068 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
5069 #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
5070 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
5071 #endif
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5072 #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
5073 bar->track_top = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5074 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
5075 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
5076 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5077
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5078 /* 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
5079 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
5080 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
5081 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
5082 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
5083 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
5084
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5085 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5086 return bar;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5087 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5088
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 /* Draw BAR's handle in the proper position.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5091
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5092 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
5093 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
5094 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
5095 events.)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5096
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5097 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
5098 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
5099 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
5100 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
5101 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
5102
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5103 #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
5104
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5105 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5106 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
5107 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
5108 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
5109 int rebuild;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5110 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5111 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
5112 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
5113 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
5114 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
5115 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
5116
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5117 /* 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
5118 if (! rebuild
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5119 && 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
5120 && 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
5121 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5122
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5123 BLOCK_INPUT;
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 /* 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
5126 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
5127 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
5128 start = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5129 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
5130 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
5131 end = start + length;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5132
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5133 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
5134 end = start;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5135 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
5136 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
5137
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5138 /* 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
5139 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
5140 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
5141
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5142 /* 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
5143 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
5144 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
5145
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5146 /* 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
5147 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
5148 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
5149 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
5150
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5151 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
5152 /* 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
5153 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
5154 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
5155 - (end - start));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5156 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
5157 #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
5158 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
5159 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5160
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5161 UNBLOCK_INPUT;
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
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5164 #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
5165
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5166 /* 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
5167 nil. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5168
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5169 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5170 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
5171 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
5172 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5173 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
5174
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5175 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5176
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5177 #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
5178 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
5179 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5180 /* 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
5181 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
5182
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5183 /* 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
5184 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
5185
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5186 UNBLOCK_INPUT;
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
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5189
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5190 /* 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
5191 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
5192 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
5193 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
5194
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5195 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5196 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
5197 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
5198 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
5199 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5200 struct 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
5201 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
5202 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
5203 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
5204 #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
5205 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
5206 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5207
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5208 /* Get window dimensions. */
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5209 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
5210 top = window_y;
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5211 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
5212 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
5213
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5214 /* 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
5215 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
5216
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5217 /* 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
5218 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
5219 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
5220 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
5221 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5222 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
5223
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5224 /* 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
5225 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
5226 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
5227 else
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_LEFTMOST_P (w) ? 0 : width - sb_width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5229
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5230 /* 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
5231 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
5232 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
5233 #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
5234 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
5235 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5236 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
5237 disp_height++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5238 }
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5239 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
5240 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5241 disp_top++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5242 disp_height--;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5243 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5244
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5245 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
5246 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
5247 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5248
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5249 #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
5250 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
5251 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
5252 && 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
5253 && (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
5254 || 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
5255 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5256 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
5257 && 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
5258 && (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
5259 || 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
5260 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5261
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5262 /* 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
5263 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
5264 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5265 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
5266 #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
5267 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
5268 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
5269 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5270 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5271 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
5272 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5273 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
5274 disp_height);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5275 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
5276 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5277 else
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 /* 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
5280 ControlRef ch;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5281
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5282 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
5283 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
5284
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5285 BLOCK_INPUT;
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 /* 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
5288 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
5289 && 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
5290 && 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
5291 && 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
5292 #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
5293 && !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
5294 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5295 ))
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5296 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
5297 /* 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
5298 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
5299 #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
5300 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
5301 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
5302 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5303 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5304 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
5305
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5306 #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
5307 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
5308 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5309 HideControl (ch);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5310 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
5311 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
5312 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
5313 #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
5314 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
5315 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
5316 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5317
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5318 /* 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
5319 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
5320 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
5321 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
5322 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
5323 #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
5324 bar->track_top = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5325 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
5326 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
5327 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5328 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5329
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5330 UNBLOCK_INPUT;
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
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5333 #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
5334 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
5335 #endif
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5336
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5337 #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
5338 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
5339 {
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
5340 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
5341 #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
5342 || 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
5343 #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
5344 )
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5345 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5346 XSETINT (bar->track_top, 0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5347 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
5348 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
5349 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5350 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5351 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
5352 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
5353 Rect r0, r1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5354
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5355 BLOCK_INPUT;
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 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
5358 SetControl32BitMaximum (ch, 1 << 30);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5359 SetControlViewSize (ch, 1);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5360
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5361 /* 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
5362 SetControl32BitValue (ch, 0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5363 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
5364
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5365 /* 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
5366 SetControl32BitValue (ch, 1 << 30);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5367 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
5368
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5369 UnionRect (&r0, &r1, &r0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5370 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
5371 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
5372 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
5373
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5374 /* 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
5375 display the scroll bar thumb. */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5376 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
5377 ShowControl (ch);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5378
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5379 UNBLOCK_INPUT;
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 }
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5382
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5383 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
5384 #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
5385 /* 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
5386 dragged. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5387 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
5388 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5389 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
5390
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5391 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
5392 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
5393 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5394 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5395 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
5396 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
5397 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
5398 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5399 }
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5400 #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
5401 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5402
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5403
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5404 /* 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
5405 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
5406 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
5407 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
5408 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
5409 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
5410 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
5411
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5412 /* 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
5413 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
5414 `*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
5415
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5416 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5417 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
5418 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
5419 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5420 /* 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
5421 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
5422 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5423 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
5424 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
5425 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
5426 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
5427 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
5428 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
5429 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
5430 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
5431 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5432 }
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 /* 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
5436 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
5437
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5438 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5439 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
5440 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
5441 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5442 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
5443 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
5444
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5445 /* 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
5446 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
5447 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5448
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5449 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
5450
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5451 /* 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
5452 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
5453 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
5454 {
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5455 /* 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
5456 the lists. */
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5457 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
5458 /* 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
5459 return;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5460 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
5461 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
5462 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
5463 else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5464 /* 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
5465 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
5466 abort ();
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5467 }
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5468 else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5469 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
5470
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5471 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
5472 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
5473
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5474 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
5475 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
5476 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
5477 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
5478 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
5479 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5480
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5481 /* 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
5482 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
5483
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5484 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5485 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
5486 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
5487 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5488 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
5489
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5490 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
5491
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5492 /* 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
5493 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
5494 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
5495
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5496 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
5497 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5498 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
5499
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5500 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
5501
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5502 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
5503 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
5504 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5505
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5506 /* 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
5507 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
5508 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5509
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 /* 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
5512 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
5513
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5514 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
5515 mark bits. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5516
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5517 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5518 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
5519 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
5520 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
5521 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
5522 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
5523 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5524 int win_y, top_range;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5525
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5526 if (! GC_WINDOWP (bar->window))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5527 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5528
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 45197
diff changeset
5529 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
5530 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
5531 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
5532
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5533 bar->dragging = Qnil;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5534
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5535 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
5536 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5537 case kControlUpButtonPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5538 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
5539 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5540 case kControlDownButtonPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5541 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
5542 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5543 case kControlPageUpPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5544 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
5545 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5546 case kControlPageDownPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5547 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
5548 break;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5549 #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
5550 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5551 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5552 case kControlIndicatorPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5553 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5554 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
5555 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
5556 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
5557 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
5558 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5559 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5560
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5561 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
5562 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
5563
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5564 win_y -= VERTICAL_SCROLL_BAR_TOP_BORDER;
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 -= 24;
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 if (! NILP (bar->dragging))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5569 win_y -= XINT (bar->dragging);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5570
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5571 if (win_y < 0)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5572 win_y = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5573 if (win_y > top_range)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5574 win_y = top_range;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5575
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5576 XSETINT (bufp->x, win_y);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5577 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
5578 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5579
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5580 #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
5581
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5582 /* 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
5583
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5584 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
5585 mark bits. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5586
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5587 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5588 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
5589 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
5590 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
5591 Time t;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5592 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5593 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
5594
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5595 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
5596
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5597 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
5598 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
5599
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5600 /* If we're dragging the bar, display it. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5601 if (! GC_NILP (bar->dragging))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5602 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5603 /* 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
5604 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
5605
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5606 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
5607 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5608 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
5609
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5610 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
5611 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5612 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5613 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5614
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5615 #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
5616
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5617 /* 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
5618 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
5619
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5620 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5621 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
5622 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
5623 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
5624 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
5625 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
5626 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
5627 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5628 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
5629 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
5630 #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
5631 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
5632 #else
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 = (*ch)->contrlOwner;
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5634 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5635 Point mouse_pos;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5636 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
5637 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
5638
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
5639 #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
5640 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
5641 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
5642 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
5643 #else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5644 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
5645 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
5646 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5647
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5648 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
5649 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
5650
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5651 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
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 -= 24;
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 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
5656 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
5657
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5658 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
5659 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
5660 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
5661 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
5662
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5663 *fp = f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5664 *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
5665
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5666 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
5667 *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
5668 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
5669 *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
5670 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
5671 *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
5672 else
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_below_handle;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5674
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5675 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
5676 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
5677
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5678 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
5679 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
5680
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5681 *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
5682 }
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5683
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5684
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5685 /* 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
5686 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
5687 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
5688 redraw them. */
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5689
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5690 void
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5691 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
5692 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
5693 {
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5694 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
5695 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
5696 }
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5697
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5698
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5699 /***********************************************************************
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5700 Tool-bars
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5701 ***********************************************************************/
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5702 #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
5703
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5704 /* 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
5705 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
5706
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5707 #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
5708 #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
5709
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_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
5711 #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
5712 (((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
5713 #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
5714 ((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
5715 #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
5716 ((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
5717
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5718 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
5719 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
5720 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
5721 EventRef, void *));
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5722
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5723 static void
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5724 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
5725 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
5726 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
5727 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
5728 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5729 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
5730
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5731 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
5732
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5733 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
5734 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5735 case NorthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5736 case WestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5737 case SouthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5738 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
5739 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5740
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5741 case NorthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5742 case CenterGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5743 case SouthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5744 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
5745 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5746
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5747 case NorthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5748 case EastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5749 case SouthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5750 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
5751 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5752 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5753
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5754 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
5755 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5756 case NorthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5757 case NorthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5758 case NorthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5759 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
5760 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5761
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5762 case WestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5763 case CenterGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5764 case EastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5765 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
5766 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5767
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5768 case SouthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5769 case SouthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5770 case SouthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5771 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
5772 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5773 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5774
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5775 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
5776 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5777
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5778 static void
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5779 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
5780 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
5781 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
5782 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
5783 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5784 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
5785
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5786 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
5787
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5788 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
5789 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5790 case NorthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5791 case WestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5792 case SouthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5793 *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
5794 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5795
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5796 case NorthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5797 case CenterGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5798 case SouthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5799 *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
5800 - (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
5801 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5802
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5803 case NorthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5804 case EastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5805 case SouthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5806 *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
5807 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5808 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5809
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5810 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
5811 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5812 case NorthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5813 case NorthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5814 case NorthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5815 *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
5816 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5817
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5818 case WestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5819 case CenterGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5820 case EastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5821 *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
5822 - (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
5823 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5824
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5825 case SouthWestGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5826 case SouthGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5827 case SouthEastGravity:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5828 *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
5829 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5830 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5831 }
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 static OSStatus
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5834 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
5835 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
5836 EventRef event;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5837 void *data;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5838 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5839 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
5840
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5841 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
5842 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5843 case kEventToolbarGetDefaultIdentifiers:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5844 result = noErr;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5845 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5846
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5847 case kEventToolbarGetAllowedIdentifiers:
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 CFMutableArrayRef array;
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 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
5852 typeCFMutableArrayRef, NULL,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5853 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
5854 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
5855 result = noErr;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5856 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5857 break;
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 case kEventToolbarCreateItemWithIdentifier:
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 CFStringRef identifier;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5862 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
5863
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5864 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
5865 typeCFStringRef, NULL,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5866 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
5867
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5868 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
5869 == kCFCompareEqualTo)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5870 HIToolbarItemCreate (identifier,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5871 kHIToolbarItemAllowDuplicates
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5872 | kHIToolbarItemCantBeRemoved, &item);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5873
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5874 if (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 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
5877 typeHIToolbarItemRef,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5878 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
5879 result = noErr;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5880 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5881 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5882 break;
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 default:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5885 abort ();
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5886 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5887
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5888 return result;
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
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5891 static CGImageRef
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5892 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
5893 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
5894 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
5895 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5896 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
5897 return NULL;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5898 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5899 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5900 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
5901 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
5902
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5903 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
5904
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5905 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
5906 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5907 }
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 /* 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
5910
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5911 static OSStatus
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5912 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
5913 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
5914 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5915 OSStatus err;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5916 HIToolbarRef toolbar;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5917
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5918 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
5919 &toolbar);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5920 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
5921 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5922 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
5923 {{kEventClassToolbar, kEventToolbarGetDefaultIdentifiers},
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5924 {kEventClassToolbar, kEventToolbarGetAllowedIdentifiers},
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5925 {kEventClassToolbar, kEventToolbarCreateItemWithIdentifier}};
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5926
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5927 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
5928 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
5929 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
5930 f, NULL);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5931 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5932
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5933 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
5934 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
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 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5937 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
5938 {{kEventClassCommand, kEventCommandProcess}};
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5939
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5940 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
5941 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
5942 GetEventTypeCount (specs),
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5943 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
5944 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5945 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
5946 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
5947
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5948 if (toolbar)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5949 CFRelease (toolbar);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5950
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5951 return err;
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
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5954 /* 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
5955
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5956 void
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5957 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
5958 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
5959 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5960 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
5961 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
5962 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
5963 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
5964 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
5965 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
5966
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5967 BLOCK_INPUT;
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 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
5970 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
5971 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5972 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
5973 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
5974 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
5975 goto out;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5976 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
5977 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
5978 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5979
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5980 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
5981 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
5982 goto out;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5983
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5984 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
5985 pos = 0;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5986 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
5987 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5988 #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
5989
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5990 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
5991 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
5992 int idx;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5993 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
5994 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
5995 CFStringRef label;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5996 HIToolbarItemRef item;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5997
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
5998 /* 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
5999 button state. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6000 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
6001 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
6002 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6003 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
6004 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
6005 ? 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
6006 : 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
6007 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6008 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
6009 ? 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
6010 : 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
6011
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6012 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
6013 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
6014 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6015 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6016 idx = -1;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6017
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6018 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
6019 /* 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
6020 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
6021 continue;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6022
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6023 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
6024 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
6025 label = CFSTR ("");
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6026
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6027 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
6028 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6029 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
6030 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
6031 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
6032
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6033 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
6034
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6035 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
6036 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
6037 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
6038 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
6039
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6040 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
6041 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
6042 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
6043 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
6044
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6045 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
6046 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
6047 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
6048 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6049 else
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 item = NULL;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6052 HIToolbarCreateItemWithIdentifier (toolbar,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6053 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
6054 NULL, &item);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6055 if (item)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6056 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6057 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
6058 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
6059 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
6060 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
6061 CFRelease (item);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6062 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6063 }
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 CFRelease (label);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6066 if (item)
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6067 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6068 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
6069 pos++;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6070 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6071 }
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 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
6074
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6075 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
6076 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
6077
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6078 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
6079 !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
6080 /* 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
6081 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
6082 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
6083 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
6084 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6085 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
6086 /* 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
6087 position. */
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6088 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
6089 kWindowConstrainMoveRegardlessOfFit
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6090 | 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
6091 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
6092 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6093
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6094 out:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6095 UNBLOCK_INPUT;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6096 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6097
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6098 /* 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
6099 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
6100
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6101 void
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6102 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
6103 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
6104 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6105 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
6106 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6107 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
6108
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6109 BLOCK_INPUT;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6110 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
6111 (NILP (Fsymbol_value
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
6112 (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
6113 && 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
6114 /* 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
6115 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
6116 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
6117 UNBLOCK_INPUT;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6118 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6119 }
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 static void
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6122 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
6123 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
6124 EventRef event;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6125 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6126 OSStatus err;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6127 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
6128 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
6129 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
6130 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
6131
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6132 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
6133 && 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
6134 && 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
6135 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
6136 return;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6137
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6138 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
6139 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
6140 /* 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
6141 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
6142 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
6143 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
6144 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
6145 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
6146 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6147 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
6148
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6149 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
6150 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6151 HIRect bounds;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6152 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
6153
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6154 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
6155 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
6156 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
6157 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
6158 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
6159 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
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 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
6162 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
6163 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
6164
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6165 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
6166 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
6167 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
6168 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
6169 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
6170 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6171 }
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 static OSStatus
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6175 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
6176 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
6177 EventRef event;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6178 void *data;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6179 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6180 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
6181 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
6182 HICommand command;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6183
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6184 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
6185 typeHICommand, NULL,
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6186 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
6187 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
6188 return result;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6189
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6190 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
6191 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6192 case kEventCommandProcess:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6193 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
6194 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
6195 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6196 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6197 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
6198
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6199 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
6200 && !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
6201 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6202 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
6203 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
6204
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6205 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
6206
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6207 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
6208 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
6209 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
6210 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
6211 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
6212
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6213 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
6214 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
6215 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
6216 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
6217 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
6218
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6219 result = noErr;
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 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6222 break;
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 default:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6225 abort ();
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6226 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6227 #undef PROP
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 return result;
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 #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
6232
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6233
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
6234 /***********************************************************************
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6235 Text Cursor
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6236 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6237
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6238 /* 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
6239 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
6240
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6241 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
6242 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
6243 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
6244
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6245 static void
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
6246 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
6247 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
6248 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
6249 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
6250 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6251 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6252 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
6253 Rect clip_rect;
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
6254 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
6255
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
6256 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
6257
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
6258 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
6259 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
6260 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
6261 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
6262 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
6263
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
6264 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
6265 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6266
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 /* 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
6269
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6270 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6271 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
6272 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
6273 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
6274 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6275 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
6276 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
6277 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
6278 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
6279 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6280 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
6281 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6282
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6283 /* 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
6284 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
6285 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
6286 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
6287 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6288
59748
1df465faf1df (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
Kim F. Storm <storm@cua.dk>
parents: 59718
diff changeset
6289 /* 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
6290 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
6291 wd = w->phys_cursor_width;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6292
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6293 /* 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
6294 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
6295 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
6296 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
6297 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
6298 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6299 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
6300 GCForeground, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6301 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
6302
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6303 /* 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
6304 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
6305 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
6306 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
6307 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6308
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 /* 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
6311
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6312 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
6313 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
6314 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
6315 --gerd. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6316
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6317 static void
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6318 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
6319 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
6320 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
6321 int width;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6322 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
6323 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6324 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
6325 struct glyph *cursor_glyph;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6326
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6327 /* 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
6328 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
6329 and mini-buffer. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6330 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
6331 if (cursor_glyph == NULL)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6332 return;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6333
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6334 /* 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
6335 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
6336 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
6337 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
6338 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6339 struct glyph_row *row;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6340 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
6341 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
6342 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6343 else
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 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
6346 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
6347 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
6348 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
6349 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
6350 XGCValues xgcv;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6351
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6352 /* 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
6353 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
6354 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
6355 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
6356 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
6357 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
6358 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
6359 else
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 = f->output_data.mac->cursor_pixel;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6361
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6362 if (gc)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6363 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
6364 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6365 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6366 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
6367 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
6368 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6369
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6370 if (width < 0)
47138
4a0541418bc5 (x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents: 47030
diff changeset
6371 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
6372 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
6373
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6374 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
6375 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
6376
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6377 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
6378 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
6379 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
6380 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
6381 width, row->height);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6382 else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
6383 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
6384 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
6385 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
6386 row->height - width),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
6387 cursor_glyph->pixel_width,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
6388 width);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6389
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
6390 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
6391 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6392 }
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
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6395 /* 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
6396
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6397 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6398 mac_define_frame_cursor (f, cursor)
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6399 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6400 Cursor cursor;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6401 {
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
6402 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
6403
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
6404 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
6405 SetThemeCursor (cursor);
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6406 }
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6407
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 /* 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
6410
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6411 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6412 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
6413 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6414 int x, y, width, height;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6415 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
6416 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
6417 }
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6418
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 /* RIF: Draw cursor on window W. */
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 static void
50243
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6423 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
6424 struct window *w;
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6425 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
6426 int x, y;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6427 int cursor_type, cursor_width;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6428 int on_p, active_p;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6429 {
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6430 if (on_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 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
6433 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
6434
53606
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
6435 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
6436 && 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
6437 {
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
6438 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
6439 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
6440 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6441 else
50243
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
6442 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
6443 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6444 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
6445 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
6446 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6447
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6448 case FILLED_BOX_CURSOR:
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
6449 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
6450 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6451
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6452 case BAR_CURSOR:
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6453 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
6454 break;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6455
47138
4a0541418bc5 (x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents: 47030
diff changeset
6456 case HBAR_CURSOR:
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6457 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
6458 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6459
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6460 case NO_CURSOR:
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6461 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
6462 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6463
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6464 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6465 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6466 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6467 }
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 /* Icons. */
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 #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
6474 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6475 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
6476 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
6477 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
6478 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6479 HANDLE hicon;
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 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
6482 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6483
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6484 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
6485 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
6486 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
6487 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
6488 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
6489 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
6490 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6491 LPCTSTR name;
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 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
6494 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
6495 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
6496 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
6497 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
6498 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
6499 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
6500 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
6501 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
6502 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
6503 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
6504 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
6505 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6506 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6507
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6508 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
6509 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6510 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6511 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6512
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6513 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
6514 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6515
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6516 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
6517 (LPARAM) hicon);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6518
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6519 return 0;
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 #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
6522
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6523 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6524 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
6525 ************************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6526
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6527 /* 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
6528 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
6529
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6530 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
6531 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
6532 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
6533 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
6534 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
6535 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
6536 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
6537 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
6538 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
6539 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
6540 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
6541 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
6542 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
6543
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6544 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6545
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 /* 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
6548
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6549 /* 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
6550 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
6551 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
6552 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
6553
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6554 Lisp_Object
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6555 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
6556 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
6557 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
6558 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6559 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
6560 = FS_LOAD_FONT (f, 0, fontname, -1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6561
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6562 if (!fontp)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6563 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6564
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6565 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
6566 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
6567 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
6568
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
6569 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
6570 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
6571 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
6572
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6573 compute_fringe_widths (f, 1);
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6574
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6575 /* 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
6576 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
6577 {
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6578 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
6579 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
6580 = (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
6581 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6582 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6583 {
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6584 int wid = FRAME_COLUMN_WIDTH (f);
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6585 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
6586 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6587
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6588 /* 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
6589 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
6590 {
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
6591 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
6592 FRAME_FONT (f));
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
6593 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
6594 FRAME_FONT (f));
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
6595 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
6596 FRAME_FONT (f));
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6597
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6598 /* 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
6599 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
6600 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
6601 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
6602 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
6603 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6604
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6605 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
6606 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6607
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6608 /* Give frame F the fontset named FONTSETNAME as its default font, and
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6609 return the full name of that fontset. FONTSETNAME may be a wildcard
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6610 pattern; in that case, we choose some fontset that fits the pattern.
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6611 The return value shows which fontset we chose. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6612
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6613 Lisp_Object
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6614 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
6615 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
6616 char *fontsetname;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6617 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6618 int fontset = fs_query_fontset (build_string (fontsetname), 0);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6619 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
6620
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6621 if (fontset < 0)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6622 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6623
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6624 if (FRAME_FONTSET (f) == fontset)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6625 /* 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
6626 to do. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6627 return fontset_name (fontset);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6628
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46169
diff changeset
6629 result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6630
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6631 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
6632 /* 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
6633 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6634
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6635 /* 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
6636 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
6637
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6638 return build_string (fontsetname);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6639 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6640
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6641
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6642 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6643 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
6644 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6645 /* 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
6646
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6647 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
6648 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
6649 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
6650 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
6651 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
6652 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
6653
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6654 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6655
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6656
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6657 void
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6658 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
6659 struct frame *f;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6660 Rect *inner, *outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6661 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6662 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6663 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
6664 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
6665 #else /* not TARGET_API_MAC_CARBON */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6666 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
6667
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6668 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
6669 *inner = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6670 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
6671 *outer = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6672 DisposeRgn (region);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6673 #endif /* not TARGET_API_MAC_CARBON */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6674 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6675
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6676 static void
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6677 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
6678 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
6679 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6680 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
6681 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6682
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6683 static void
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6684 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
6685 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
6686 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
6687 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6688 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
6689
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6690 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
6691 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
6692
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6693 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
6694 || 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
6695 || 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
6696 || 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
6697 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6698 /* 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
6699 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
6700 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
6701 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
6702 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
6703 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
6704
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6705 /* 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
6706 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
6707
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6708 /* 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
6709 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
6710 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
6711 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
6712 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
6713 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
6714
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6715 #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
6716 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
6717 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6718 #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
6719 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
6720 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6721 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
6722 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
6723 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6724 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6725 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6726 }
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6727
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
6728
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6729 /* 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
6730 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
6731
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6732 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6733 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
6734 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
6735 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6736 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
6737 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
6738 Rect inner, outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6739
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6740 /* 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
6741 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
6742 if (! ((flags & XNegative) || (flags & YNegative)))
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6743 return;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6744
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6745 /* 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
6746 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
6747 BLOCK_INPUT;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6748 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
6749 UNBLOCK_INPUT;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6750
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6751 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
6752 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
6753
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6754 /* 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
6755 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
6756 if (flags & XNegative)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6757 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
6758 - width_diff
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6759 - FRAME_PIXEL_WIDTH (f)
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6760 + f->left_pos);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6761
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6762 if (flags & YNegative)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6763 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
6764 - height_diff
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6765 - FRAME_PIXEL_HEIGHT (f)
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6766 + f->top_pos);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6767
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6768 /* 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
6769 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
6770 so the flags should correspond. */
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6771 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
6772 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6773
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6774 /* 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
6775 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
6776 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
6777 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
6778 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
6779
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6780 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6781 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
6782 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
6783 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
6784 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
6785 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6786 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
6787 {
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6788 f->top_pos = yoff;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6789 f->left_pos = xoff;
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 if (xoff < 0)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6792 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
6793 if (yoff < 0)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6794 f->size_hint_flags |= YNegative;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6795 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
6796 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6797 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
6798
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6799 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6800 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
6801
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6802 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6803 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
6804 /* 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
6805 position. */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6806 ConstrainWindowToScreen (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn,
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6807 kWindowConstrainMoveRegardlessOfFit
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6808 | 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
6809 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
6810 mac_handle_origin_change (f);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6811 #else
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6812 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6813 Rect inner, outer, screen_rect, dummy;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6814 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
6815
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6816 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
6817 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
6818 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
6819 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
6820 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
6821
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6822 /* 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
6823 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
6824 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
6825 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
6826 strict. */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6827 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
6828 outer = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6829 DisposeRgn (region);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6830 inner = outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6831 InsetRect (&inner, 8, 8);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6832 screen_rect = qd.screenBits.bounds;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6833 screen_rect.top += GetMBarHeight ();
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6834
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6835 if (!SectRect (&inner, &screen_rect, &dummy))
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6836 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6837 if (inner.right <= screen_rect.left)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6838 f->left_pos = screen_rect.left;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6839 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
6840 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
6841
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6842 if (inner.bottom <= screen_rect.top)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6843 f->top_pos = screen_rect.top;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6844 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
6845 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
6846
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6847 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
6848 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
6849 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6850 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6851 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6852
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6853 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6854 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6855
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6856 /* 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
6857 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
6858 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
6859 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
6860
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6861 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6862 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
6863 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
6864 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
6865 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
6866 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6867 int pixelwidth, pixelheight;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6868
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6869 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6870
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6871 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
6872 f->scroll_bar_actual_width
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6873 = 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
6874
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
6875 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
6876
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6877 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
6878 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
6879
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6880 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
6881 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
6882
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6883 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
6884
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
6885 #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
6886 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
6887 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6888 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
6889
76331
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6890 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
6891 != 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
6892 {
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6893 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
6894 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
6895 = 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
6896 }
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6897
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6898 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
6899
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6900 UNBLOCK_INPUT;
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6903 /* Mouse warping. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6904
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6905 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
6906
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6907 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6908 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
6909 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
6910 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
6911 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6912 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
6913
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6914 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
6915 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
6916
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6917 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
6918 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
6919
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6920 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
6921 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
6922
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6923 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
6924 }
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_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
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 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
6930 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6931 #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
6932 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
6933 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
6934
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6935 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
6936 CGWarpMouseCursorPosition (CGPointMake (pix_x, pix_y));
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6937 UNBLOCK_INPUT;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6938 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6939 #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
6940 BLOCK_INPUT;
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 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
6943 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
6944 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6945 #endif
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6946 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6947 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6948
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6949 /* 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
6950
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6951 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6952 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
6953 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
6954 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6955 #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
6956 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
6957 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6958 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6959 /* 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
6960 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
6961 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
6962 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
6963 RevertToPointerRoot, CurrentTime);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6964 #endif /* ! 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6965 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6966
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6967 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6968 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
6969 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
6970 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6971 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6972
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6973 /* 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
6974
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6975 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6976 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
6977 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
6978 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6979 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
6980 {
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6981 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
6982 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
6983 UNBLOCK_INPUT;
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6984 }
44890
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6987 /* 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
6988
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6989 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6990 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
6991 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
6992 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6993 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
6994 {
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6995 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
6996 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
6997 UNBLOCK_INPUT;
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6998 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6999 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7000
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7001 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7002 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
7003 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
7004 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
7005 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7006 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
7007 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
7008 else
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 }
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 /* 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
7013
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
7014 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
7015 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
7016 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
7017 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
7018 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
7019 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
7020 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
7021
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7022 if (IsWindowVisible (wp))
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7023 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7024 if (IsWindowCollapsed (wp))
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7025 iconified = 1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7026 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7027 visible = 1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7028 }
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
7029
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7030 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
7031 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7032 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
7033 {
ac7314b59792 (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 /* 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
7035 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
7036 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
7037 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
7038 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
7039
ac7314b59792 (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 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
7041 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
7042 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
7043 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
7044 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
7045 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7046 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
7047 /* 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
7048 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
7049 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
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 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
7052 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
7053 {
ac7314b59792 (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 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
7055 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
7056 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
7057 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
7058 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
7059 }
ac7314b59792 (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
ac7314b59792 (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 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
7062 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
7063 }
ac7314b59792 (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
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7065 /* 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
7066 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
7067 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
7068 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
7069 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
7070 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
7071
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7072 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7073 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
7074 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
7075 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7076 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7077
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7078 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
7079 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7080 /* 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
7081 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
7082 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
7083 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
7084 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
7085 && ! 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
7086 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
7087
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7088 f->output_data.mac->asked_for_visible = 1;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7089
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
7090 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
7091 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
7092 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7093
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7094 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
7095
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7096 /* 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
7097 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
7098 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
7099 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7100 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
7101 int count;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7102
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7103 /* 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
7104 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7105
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7106 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
7107
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7108 /* 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
7109 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
7110 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
7111 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
7112 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
7113 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7114 /* 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
7115 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
7116
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7117 /* 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
7118 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
7119 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
7120 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
7121 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
7122 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
7123 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
7124 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7125 /* 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
7126 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
7127 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
7128 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
7129 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
7130 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
7131 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
7132 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
7133 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7134
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7135 /* 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
7136 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
7137 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7138 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7139 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7140
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7141 /* 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
7142
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7143 /* 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
7144
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7145 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7146 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
7147 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
7148 {
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
7149 /* 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
7150 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
7151 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
7152 #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
7153 /* 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
7154 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
7155 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
7156 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7157
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7158 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7159
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
7160 #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
7161 /* 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
7162 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
7163 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
7164 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
7165 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
7166 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
7167 #endif
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
7168
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7169 HideWindow (FRAME_MAC_WINDOW (f));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7170
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7171 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
7172
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
7173 #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
7174 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
7175 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7176 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7177
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7178 /* 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
7179
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7180 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7181 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
7182 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
7183 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
7184 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
7185
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7186 /* 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
7187 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
7188 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
7189 #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
7190 /* Don't keep the highlight on an invisible frame. */
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
7191 if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
7192 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
7193 #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
7194
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7195 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
7196 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7197
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7198 BLOCK_INPUT;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
7199
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
7200 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
7201
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7202 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
7203 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
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 err = CollapseWindow (FRAME_MAC_WINDOW (f), true);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7206
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7207 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
7208
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
7209 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
7210 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
7211
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
7212 #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
7213 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
7214 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7215 }
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
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7218 /* 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
7219
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7220 void
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7221 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
7222 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
7223 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7224 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
7225 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
7226
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7227 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7228
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
7229 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
7230 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
7231
75200
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
7232 #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
7233 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
7234 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
7235 DisposeWindow (wp);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
7236 if (wp == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
7237 /* Neither WaitNextEvent nor ReceiveNextEvent receives `window
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
7238 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
7239 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
7240
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7241 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
7242
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7243 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
7244 free_frame_faces (f);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7245
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7246 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
7247
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7248 if (FRAME_SIZE_HINTS (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7249 xfree (FRAME_SIZE_HINTS (f));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7250
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7251 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
7252 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
7253
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7254 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
7255 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
7256 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
7257 #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
7258 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
7259 #endif
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
7260 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7261 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
7262 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
7263 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
7264 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
7265
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7266 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
7267 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7268 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
7269 = 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
7270 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
7271 = 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
7272 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
7273 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
7274 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
7275 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7276
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7277 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7278 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7279
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7280
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7281 /* 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
7282
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7283 void
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7284 x_destroy_window (f)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7285 struct frame *f;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7286 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7287 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
7288
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7289 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
7290
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7291 dpyinfo->reference_count--;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7292 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7293
44890
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 /* 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
7296
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7297 /* 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
7298 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
7299 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
7300 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
7301 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
7302 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7303 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
7304 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
7305 long flags;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7306 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
7307 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7308 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
7309 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
7310 XSizeHints *size_hints;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7311
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7312 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
7313 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
7314 width_inc = FRAME_COLUMN_WIDTH (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7315 height_inc = FRAME_LINE_HEIGHT (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7316
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7317 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
7318
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7319 size_hints = FRAME_SIZE_HINTS (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7320 if (size_hints == NULL)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7321 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7322 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
7323 bzero (size_hints, sizeof (XSizeHints));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7324 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7325
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7326 size_hints->flags |= PResizeInc | PMinSize | PBaseSize ;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7327 size_hints->width_inc = width_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7328 size_hints->height_inc = height_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7329 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
7330 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
7331 size_hints->base_width = base_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7332 size_hints->base_height = base_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7333
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7334 if (flags)
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7335 size_hints->flags = flags;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7336 else if (user_position)
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->flags &= ~ PPosition;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7339 size_hints->flags |= USPosition;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7340 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7341 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7342
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7343 #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
7344 /* 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
7345
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7346 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7347 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
7348 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
7349 int state;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7350 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7351 #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
7352 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
7353
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7354 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
7355 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
7356 #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
7357 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
7358
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7359 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
7360 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
7361
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7362 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
7363 #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
7364 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7365
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7366 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7367 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
7368 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
7369 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
7370 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7371 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
7372
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7373 #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
7374 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
7375 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7376
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7377 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
7378 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7379 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
7380 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
7381 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7382 else
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 /* 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
7385 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
7386 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
7387 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
7388 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
7389 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
7390 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
7391 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7392 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
7393 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7394 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7395 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7396 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7397
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7398 #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
7399
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 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
7402 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
7403 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
7404 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7405
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7406 #else /* not USE_X_TOOLKIT */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7407
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7408 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
7409 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
7410
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7411 #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
7412 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7413
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7414 #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
7415
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7416 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7417 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
7418 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
7419 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
7420 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7421 #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
7422 #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
7423 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
7424 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7425 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
7426 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7427
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7428 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
7429 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
7430 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
7431
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7432 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
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7436
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7437 /***********************************************************************
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7438 XLFD Pattern Match
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7439 ***********************************************************************/
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7440
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7441 /* 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
7442 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
7443 struct xlfdpat_block
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7444 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7445 /* 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
7446 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
7447 int len;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7448
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7449 /* 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
7450 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
7451 sentinel. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7452 unsigned char *pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7453
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7454 /* 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
7455 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
7456
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7457 /* 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
7458 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
7459 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
7460 int skip[256];
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7461
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7462 /* 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
7463 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
7464 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
7465 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
7466 };
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 struct xlfdpat
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7469 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7470 /* 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
7471 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
7472 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
7473 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
7474 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
7475 unsigned char *buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7476
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7477 /* 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
7478 normalized pattern string. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7479 int nchars;
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 /* 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
7482 int trailing_anychars;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7483
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7484 /* 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
7485 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
7486 int nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7487 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
7488 };
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7489
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7490 static void
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7491 xlfdpat_destroy (pat)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7492 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7493 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7494 if (pat)
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 if (pat->buf)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7497 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7498 if (pat->blocks)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7499 xfree (pat->blocks);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7500 xfree (pat->buf);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7501 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7502 xfree (pat);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7503 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7504 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7505
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7506 static struct xlfdpat *
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7507 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
7508 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
7509 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7510 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7511 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
7512 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
7513 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
7514 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
7515
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7516 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
7517 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
7518
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7519 /* 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
7520 nblocks = 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7521 anychar_head = NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7522 q = pat->buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7523 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
7524 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
7525 {
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7526 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
7527
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7528 if (c == '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7529 if (last_char == '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7530 /* ...a** -> ...a* */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7531 continue;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7532 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7533 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7534 if (last_char == '?')
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7535 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7536 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
7537 /* ...*??* -> ...*?? */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7538 continue;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7539 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7540 /* ...a??* -> ...a*?? */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7541 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7542 *anychar_head++ = '*';
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7543 c = '?';
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7544 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7545 }
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7546 nblocks++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7547 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7548 else if (c == '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7549 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7550 if (last_char != '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7551 anychar_head = q;
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 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7554 /* 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
7555 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
7556 if (isascii (c))
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7557 c = tolower (c);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7558
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7559 *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
7560 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7561 *q = '\0';
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7562 nblocks++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7563 pat->nblocks = nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7564 if (last_char != '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7565 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
7566 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7567 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7568 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
7569 q = anychar_head;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7570 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7571 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
7572
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7573 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
7574 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7575 /* 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
7576 pat->blocks = NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7577 return pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7578 }
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 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
7581
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7582 /* 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
7583 p = pat->buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7584 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
7585 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7586 blk->pattern = p;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7587 while (*p != '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7588 p++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7589 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
7590 p++;
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 blk->pattern = p;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7593 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
7594
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7595 /* 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
7596 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
7597 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
7598 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7599 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
7600 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
7601
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7602 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
7603 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
7604 break;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7605
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7606 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
7607 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
7608
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7609 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
7610 while (--skip > 0)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7611 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
7612
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7613 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
7614 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7615
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7616 return pat;
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
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7619 static INLINE int
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7620 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
7621 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7622 {
65643
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7623 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
7624 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7625
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7626 /* 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
7627 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
7628 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
7629
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7630 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
7631 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
7632 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
7633 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
7634 int start_max;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7635 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7636 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
7637 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
7638 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
7639
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7640 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
7641 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
7642 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
7643
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7644 /* 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
7645 use of `infinity'. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7646 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
7647 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
7648
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7649 start = 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7650 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7651 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7652 /* 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
7653 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
7654 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7655 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7656 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
7657 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7658 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
7659
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7660 if (start < infinity)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7661 /* 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
7662 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7663
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7664 /* 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
7665 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
7666 start -= 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 /* 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
7669 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
7670 p = blk->pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7671 s = string + start;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7672 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7673 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7674 while (*p++ == *s++)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7675 ;
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 (*(p - 1) == '?');
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 (*(p - 1) == '\0')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7680 /* Matched. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7681 return string + start;
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 /* Didn't match. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7684 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
7685 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7686 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
7687
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7688 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7689 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7690
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7691 #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
7692 ((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
7693 : 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
7694
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7695 /* 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
7696 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
7697
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7698 static int
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7699 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
7700 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
7701 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
7702 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7703 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
7704 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
7705 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
7706
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7707 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
7708
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7709 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
7710 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
7711
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7712 /* 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
7713 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
7714 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
7715 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
7716 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7717
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7718 /* 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
7719 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
7720
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7721 /* 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
7722 of the string. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7723 nblocks = pat->nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7724 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
7725 if (nblocks == 1)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7726 /* 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
7727 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
7728 && (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
7729 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
7730 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
7731 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7732
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7733 /* 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
7734 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
7735 blk = pat->blocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7736 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
7737 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7738 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
7739 if (s == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7740 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7741 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
7742 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7743
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7744 /* 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
7745 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
7746 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
7747 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7748 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
7749 if (s == NULL)
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 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
7752 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
7753 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7754
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7755 return 1;
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
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7758
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7759 /***********************************************************************
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7760 Fonts
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7761 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7762
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7763 /* 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
7764
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7765 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
7766 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
7767 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
7768 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
7769 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7770 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
7771 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7772
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7773 /* 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
7774 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
7775 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
7776 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
7777
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7778 /* 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
7779 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
7780 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
7781 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
7782 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
7783 #if USE_ATSUI
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7784 /* 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
7785 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
7786 /* 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
7787 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
7788 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
7789 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7790
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7791 /* 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
7792 coding system. */
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7793 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
7794
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7795 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
7796 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
7797 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7798 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
7799
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7800 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
7801 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7802 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
7803 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
7804 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
7805
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7806 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
7807 && (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
7808 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
7809 && 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
7810 && (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
7811 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
7812 && 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
7813 && (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
7814 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
7815 continue;
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 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
7818 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
7819 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
7820 result);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7821 else
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7822 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
7823 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
7824 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
7825 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7826
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7827 return result;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7828 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7829
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7830
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7831 static void
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7832 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
7833 char *name;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7834 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
7835 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
7836 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7837 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
7838 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
7839
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7840 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
7841 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7842 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
7843 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
7844 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7845
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7846 if (*p)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7847 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7848 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
7849 coding.src_multibyte = 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7850 coding.dst_multibyte = 1;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7851 coding.mode |= CODING_MODE_LAST_BLOCK;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7852 coding.composing = COMPOSITION_DISABLED;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7853 buf = (char *) alloca (size);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7854
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7855 decode_coding (&coding, name, buf, strlen (name), size - 1);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7856 bcopy (buf, name, coding.produced);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7857 name[coding.produced] = '\0';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7858 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7859 }
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 /* 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
7862 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
7863 "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
7864 p = strchr (name, '-');
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7865 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
7866 *p = '_';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7867
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7868 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
7869 /* 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
7870 for some locales. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7871 if (isascii (*p))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7872 *p = tolower (*p);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7873 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7874
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7875
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7876 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
7877 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
7878 const char *name;
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7879 int size;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7880 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
7881 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
7882 {
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7883 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
7884 Str255 family;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7885 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
7886 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
7887
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7888 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
7889 charset = cs;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7890 else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7891 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7892 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
7893 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
7894 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7895
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7896 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
7897 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
7898 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
7899
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7900 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
7901 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
7902 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
7903 /* 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
7904 for some locales. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7905 if (isascii (*p))
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7906 *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
7907 return result;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7908 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7909
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7910
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7911 /* 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
7912 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
7913 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
7914 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
7915 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
7916 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
7917 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
7918 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
7919 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
7920
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7921 const int kDefaultFontSize = 12;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7922
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7923 static int
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7924 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
7925 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
7926 char *family;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7927 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
7928 Style *style;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7929 char *charset;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7930 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7931 Str31 foundry, weight;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7932 int point_size, avgwidth;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7933 char slant[2], *p;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7934
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7935 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
7936 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
7937 &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
7938 && 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
7939 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
7940 &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
7941 return 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7942
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7943 if (*size == 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7944 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7945 if (point_size > 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7946 *size = point_size / 10;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7947 else if (avgwidth > 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7948 *size = avgwidth / 10;
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 if (*size == 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7951 *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
7952
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7953 *style = normal;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7954 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
7955 *style |= bold;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7956 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
7957 *style |= italic;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7958
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7959 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
7960 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7961 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
7962
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7963 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
7964 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7965 /* 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
7966 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
7967 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
7968 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
7969 family[foundry_len] = '-';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7970 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
7971 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
7972 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7973 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7974 return 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7975 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7976
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7977 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
7978 /* 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
7979 for some locales. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7980 if (isascii (*p))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7981 *p = tolower (*p);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7982
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7983 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
7984 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7985
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7986
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7987 static void
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7988 add_font_name_table_entry (char *font_name)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7989 {
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7990 if (font_name_table_size == 0)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7991 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7992 font_name_table_size = 256;
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7993 font_name_table = (char **)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7994 xmalloc (font_name_table_size * sizeof (char *));
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7995 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7996 else if (font_name_count + 1 >= font_name_table_size)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7997 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7998 font_name_table_size *= 2;
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7999 font_name_table = (char **)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8000 xrealloc (font_name_table,
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8001 font_name_table_size * sizeof (char *));
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8002 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8003
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8004 font_name_table[font_name_count++] = font_name;
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8005 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8006
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
8007 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
8008 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
8009 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
8010 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
8011 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
8012 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
8013 {
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
8014 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
8015 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
8016 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
8017 {
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
8018 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
8019 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
8020 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
8021 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
8022 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
8023 }
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
8024 }
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
8025
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8026 #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
8027 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
8028 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
8029 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
8030 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8031 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
8032 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
8033 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
8034 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
8035 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
8036 #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
8037
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8038 /* 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
8039 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
8040 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
8041 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
8042 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
8043 && 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
8044 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
8045 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8046 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
8047
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8048 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
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
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8051 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
8052 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
8053 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
8054 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8055 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
8056 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
8057 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
8058 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
8059 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
8060
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8061 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
8062 &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
8063 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
8064 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
8065
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8066 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
8067 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
8068 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
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 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
8071 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
8072 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
8073 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
8074 && (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
8075 do
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8076 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8077 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
8078 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
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 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
8081 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
8082 break;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8083 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8084 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
8085 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8086 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
8087 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8088 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
8089
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8090 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
8091 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
8092 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8093
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8094 static Lisp_Object
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8095 fm_style_to_face_attributes (fm_style)
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8096 FMFontStyle fm_style;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8097 {
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8098 Lisp_Object tem;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8099
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8100 fm_style &= (bold | italic);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8101 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
8102 fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8103 if (!NILP (tem))
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8104 return XCDR (tem);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8105
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8106 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
8107 QCslant, fm_style & italic ? Qitalic : Qnormal);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8108 fm_style_face_attributes_alist =
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8109 Fcons (Fcons (make_number (fm_style), tem),
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8110 fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8111
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8112 return tem;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8113 }
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8114
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8115 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
8116 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
8117 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
8118 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8119 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
8120 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
8121 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
8122
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8123 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
8124 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
8125 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
8126 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
8127 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8128 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
8129 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
8130 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
8131 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
8132 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
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 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
8135 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
8136
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8137 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
8138 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8139
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
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8141 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
8142 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
8143 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8144 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
8145
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8146 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
8147 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
8148 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
8149 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
8150 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
8151 }
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8152 #endif
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
8153
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8154 /* 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
8155 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
8156 Manager need not be accessed every time this information is
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
8157 needed. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8158
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8159 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8160 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
8161 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8162 #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
8163 FMFontFamilyIterator ffi;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8164 FMFontFamilyInstanceIterator ffii;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8165 FMFontFamily ff;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8166 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
8167 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
8168
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8169 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
8170
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8171 #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
8172 #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
8173 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
8174 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8175 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
8176 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
8177 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8178 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
8179 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
8180 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
8181 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
8182 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
8183 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
8184 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
8185
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8186 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
8187 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
8188 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
8189 make_float (DEFAULT_REHASH_THRESHOLD),
77907
c53c9b6a0e5b (mac_create_bitmap_from_bitmap_data)
Chong Yidong <cyd@stupidchicken.com>
parents: 77795
diff changeset
8190 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
8191 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
8192
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8193 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
8194 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
8195 {
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8196 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
8197 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
8198 }
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8199 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
8200 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
8201 {
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 family;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8203
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8204 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
8205 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
8206 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
8207 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
8208 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
8209 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8210 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
8211 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
8212 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8213 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
8214 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
8215 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
8216 }
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8217 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
8218 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
8219 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
8220 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
8221 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8222 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
8223 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
8224 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8225 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8226
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8227 /* 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
8228 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
8229 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
8230 return;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8231 /* 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
8232 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
8233 != noErr)
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8234 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8235 FMDisposeFontFamilyInstanceIterator (&ffii);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8236 return;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8237 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8238
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8239 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
8240
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8241 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
8242 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8243 Str255 name;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8244 FMFont font;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8245 FMFontStyle style;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8246 FMFontSize size;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8247 TextEncoding encoding;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8248 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
8249 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
8250
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8251 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
8252 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8253 p2cstr (name);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8254 if (*name == '.')
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8255 continue;
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 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
8258 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8259 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
8260 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
8261 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
8262 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
8263 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
8264 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
8265 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
8266 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
8267 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
8268 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
8269 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
8270 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
8271 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
8272
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8273 /* 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
8274 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
8275 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8276
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8277 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
8278 == noErr)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8279 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8280 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
8281
65643
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
8282 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
8283 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
8284 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
8285 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8286 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8287
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8288 UNGCPRO;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8289
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8290 /* 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
8291 FMDisposeFontFamilyIterator (&ffi);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8292 FMDisposeFontFamilyInstanceIterator (&ffii);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8293 #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
8294 GrafPtr port;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8295 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
8296 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
8297 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
8298 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
8299 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
8300 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
8301 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
8302 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
8303 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
8304 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
8305 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
8306
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8307 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
8308 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
8309
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8310 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
8311
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8312 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
8313
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8314 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
8315 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8316 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
8317 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
8318 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8319
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8320 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
8321 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
8322 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
8323 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
8324 continue;
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 TextFont (fontnum);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8327 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
8328 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
8329 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
8330 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
8331 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
8332 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
8333 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
8334 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
8335 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
8336 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
8337 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
8338 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
8339 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
8340 do
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8341 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8342 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
8343
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8344 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
8345 >= 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
8346 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8347 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
8348 + 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
8349 assc_entry
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8350 = (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
8351 + 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
8352 + 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
8353
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8354 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
8355 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8356 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
8357
85330
0bc184c59770 * xfns.c (Fx_create_frame, Fx_display_list):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85257
diff changeset
8358 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
8359 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
8360 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
8361 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
8362 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8363 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8364
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8365 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
8366 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
8367 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
8368 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
8369 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8370 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
8371 }
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 UNGCPRO;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8374
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8375 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
8376 #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
8377 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8378
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8379
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8380 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8381 mac_clear_font_name_table ()
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8382 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8383 int i;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8384
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8385 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
8386 xfree (font_name_table[i]);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8387 xfree (font_name_table);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8388 font_name_table = NULL;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8389 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
8390 fm_font_family_alist = Qnil;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8391 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8392
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8393
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8394 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
8395 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8396 XLFD_SCL_PIXEL_SIZE,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8397 XLFD_SCL_POINT_SIZE,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8398 XLFD_SCL_AVGWIDTH,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8399 XLFD_SCL_LAST
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8400 };
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8401
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8402 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
8403 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8404 6, /* PIXEL_SIZE */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8405 7, /* POINT_SIZE */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8406 11, /* AVGWIDTH */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8407 -1
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8408 };
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8409
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8410 static Lisp_Object
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8411 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
8412 const char *pattern;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8413 int maxnames;
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 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
8416 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
8417 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
8418 char *scaled;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8419 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
8420 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
8421 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
8422 int exact;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8423
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8424 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
8425 init_font_name_table ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8426
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8427 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
8428 scl_val[i] = -1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8429
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8430 /* 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
8431 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
8432 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
8433 ptr = pattern;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8434 i = 0;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8435 field = xlfd_scalable_fields;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8436 val = scl_val;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8437 if (*ptr == '-')
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8438 do
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8439 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8440 ptr++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8441 if (i == *field)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8442 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8443 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
8444 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8445 *val = *ptr++ - '0';
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8446 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
8447 *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
8448 if (*ptr != '-')
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8449 *val = -1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8450 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8451 field++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8452 val++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8453 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8454 ptr = strchr (ptr, '-');
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8455 i++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8456 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8457 while (ptr && i < 14);
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 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
8460 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8461 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
8462 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
8463 (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
8464 : (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
8465 : -1));
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8466 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
8467 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
8468 (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
8469 : (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
8470 : -1));
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8471 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
8472 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
8473 (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
8474 : (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
8475 : -1));
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8476 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8477 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8478 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
8479
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8480 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
8481 if (pat == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8482 return Qnil;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8483
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8484 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
8485
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8486 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
8487 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8488 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
8489 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8490 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
8491 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
8492 break;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8493 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8494 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
8495 && (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
8496 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8497 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
8498
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
8499 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
8500 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
8501 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
8502 "-%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
8503 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
8504 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
8505 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
8506 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
8507
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8508 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
8509 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8510 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
8511 xfree (scaled);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
8512 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
8513 break;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8514 }
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8515 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8516 xfree (scaled);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8517 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8518 }
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
8519
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
8520 xlfdpat_destroy (pat);
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
8521
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8522 return font_list;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8523 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8524
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8525 /* 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
8526
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8527 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
8528 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
8529 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
8530
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8531 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
8532 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
8533 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
8534 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
8535 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
8536 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8537 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
8538 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
8539 = 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
8540
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8541 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
8542
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8543 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
8544 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
8545 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
8546
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8547 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
8548 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8549 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
8550
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8551 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
8552 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8553
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
8554 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
8555 key = Fcons (pattern, make_number (maxnames));
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
8556
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8557 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
8558 if (!NILP (list))
46169
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
8559 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8560 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
8561 /* 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
8562 goto label_cached;
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
8563 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8564
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8565 BLOCK_INPUT;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8566 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
8567 UNBLOCK_INPUT;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8568
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8569 /* 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
8570
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8571 /* 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
8572 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
8573 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
8574 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
8575
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8576 label_cached:
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)) 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
8578 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8579
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8580 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
8581 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8582
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8583
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8584 #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
8585
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8586 /* 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
8587 font table. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8588
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8589 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8590 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
8591 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
8592 XFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8593 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8594 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8595 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
8596
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8597 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
8598
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8599 for (i = 0; i < dpyinfo->n_fonts; i++)
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8600 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
8601 && 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
8602 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8603
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8604 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
8605 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8606
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8607 #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
8608
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8609 /* 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
8610 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
8611 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
8612 "-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
8613 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
8614
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8615 static INLINE void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8616 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
8617 MacFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8618 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
8619 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8620 *h = FONT_HEIGHT (font);
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8621 *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
8622 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8623
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 /* 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
8626 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
8627 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
8628 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
8629 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
8630
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
8631 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
8632 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
8633 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
8634 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8635 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8636 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
8637 MacFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8638 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
8639 int old_height = dpyinfo->smallest_font_height;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8640
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8641 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
8642 dpyinfo->smallest_char_width = 100000;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8643
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8644 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
8645 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
8646 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8647 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
8648 int w, h;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8649
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8650 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
8651 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
8652 x_font_min_bounds (font, &w, &h);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8653
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8654 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
8655 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
8656 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8657
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8658 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
8659 && 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
8660
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8661 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
8662 || 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
8663 || 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
8664 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8665
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8666
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8667 /* 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
8668 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
8669
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8670 static int
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8671 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
8672 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
8673 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8674 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8675 char *q;
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 if (*p != '-')
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8678 return 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8679
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8680 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
8681 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8682 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
8683 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
8684 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8685 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
8686 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8687 p = q;
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8690 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
8691 return 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8692
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8693 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
8694 return 0;
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 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8697 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8698
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8699
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
8700 /* 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
8701 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
8702 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
8703 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
8704 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
8705
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8706 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
8707 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
8708 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
8709 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
8710 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8711 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
8712 char *name;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8713 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
8714 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
8715 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
8716 #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
8717 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
8718 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
8719 #endif
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8720 Style fontface;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8721 #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
8722 TextEncoding encoding;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8723 int scriptcode;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8724 #else
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8725 short scriptcode;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8726 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8727 MacFontStruct *font;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8728 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
8729
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8730 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
8731 name = fontname;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8732 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8733 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8734 Lisp_Object matched_fonts;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8735
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8736 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
8737 if (NILP (matched_fonts))
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8738 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8739 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
8740 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8741
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8742 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
8743 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8744
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8745 #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
8746 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
8747 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8748 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
8749 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
8750 {kATSUFontTag, kATSUSizeTag,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8751 kATSUQDBoldfaceTag, kATSUQDItalicTag};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8752 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
8753 {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
8754 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
8755 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
8756 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
8757 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
8758 {&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
8759 &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
8760 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
8761 {kAllTypographicFeaturesType, kDiacriticsType};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8762 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
8763 {kAllTypeFeaturesOffSelector, kDecomposeDiacriticsSelector};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8764 FMFontStyle style;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
8765
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8766 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
8767 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
8768 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
8769 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
8770 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
8771 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
8772 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
8773 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
8774 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8775 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
8776 types, selectors);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8777 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
8778 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8779 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
8780 tags, sizes, values);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8781 if (err != noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8782 return NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8783 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
8784 if (err != noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8785 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
8786 scriptcode = kTextEncodingMacUnicode;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8787 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8788 else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8789 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8790 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8791 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
8792
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8793 if (NILP (tmp))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8794 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8795 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
8796 #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
8797 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
8798 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8799 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
8800 #else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8801 scriptcode = FontToScript (fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8802 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8803 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8804
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8805 font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8806
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8807 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
8808 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
8809 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
8810 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
8811 #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
8812 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
8813 #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
8814 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
8815 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
8816 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8817 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8818
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8819 /* 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
8820 "*-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
8821 (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
8822 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
8823 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
8824 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
8825
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8826 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
8827
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8828 #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
8829 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
8830 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8831 OSStatus err;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8832 UniChar c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8833
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8834 font->min_byte1 = 0;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8835 font->max_byte1 = 0xff;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8836 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
8837 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
8838
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8839 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
8840 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
8841 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
8842 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
8843
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
8844 #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
8845 if (fontnum != -1)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8846 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8847 FMFontStyle style;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8848 ATSFontRef ats_font;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8849
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8850 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
8851 &font_id, &style);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8852 /* 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
8853 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
8854 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8855 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
8856 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
8857 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8858 }
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
8859
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8860 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
8861 {
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8862 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
8863 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
8864 }
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
8865 #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
8866 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
8867 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
8868 &font->ascent, &font->descent,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8869 space_bounds,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8870 #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
8871 (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
8872 : NULL)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8873 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8874 NULL
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8875 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8876 );
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
8877 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
8878 || 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
8879 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8880 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
8881 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8882 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8883
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8884 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
8885 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
8886 {
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
8887 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
8888 /* 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
8889 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
8890 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
8891 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8892 #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
8893 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
8894 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8895 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
8896 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
8897 continue;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8898 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8899 #endif
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8900 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
8901 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8902
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8903 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
8904 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
8905 #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
8906 (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
8907 : NULL)
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
8908 #else
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8909 NULL
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8910 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8911 );
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8912
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8913 #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
8914 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
8915 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8916 /* 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
8917 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
8918 CGFontRelease (font->cg_font);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8919 font->cg_font = NULL;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8920 xfree (font->cg_glyphs);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8921 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
8922 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
8923 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
8924 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8925 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8926 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8927 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8928 else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8929 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8930 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8931 OSStatus err;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8932 FontInfo the_fontinfo;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8933 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
8934
73133
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
8935 #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
8936 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
8937 #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
8938 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
8939
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8940 TextFont (fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8941 TextSize (size);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8942 TextFace (fontface);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8943
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8944 GetFontInfo (&the_fontinfo);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8945
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8946 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
8947 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
8948
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8949 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
8950 || font->mac_scriptcode == smTradChinese
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8951 || font->mac_scriptcode == smSimpChinese
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8952 || font->mac_scriptcode == smKorean);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8953
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8954 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
8955 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8956 int char_width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8957
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8958 font->min_byte1 = 0xa1;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8959 font->max_byte1 = 0xfe;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8960 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
8961 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
8962
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8963 /* 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
8964 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
8965 some fonts. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8966 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
8967 {
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8968 case smJapanese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8969 font->min_byte1 = 0x81;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8970 font->max_byte1 = 0xfc;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8971 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
8972 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
8973 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
8974 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8975 case smTradChinese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8976 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
8977 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
8978 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8979 case smSimpChinese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8980 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
8981 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8982 case smKorean:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8983 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
8984 break;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8985 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8986
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8987 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
8988
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8989 if (fontface & italic)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8990 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
8991 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8992 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
8993 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
8994 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
8995 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
8996 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
8997
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8998 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
8999 }
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9000 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9001 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9002 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9003
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9004 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
9005 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
9006 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
9007
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9008 font->bounds.per_char =
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9009 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
9010 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
9011 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
9012
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9013 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
9014 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
9015 &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
9016 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
9017 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
9018 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
9019 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
9020 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9021
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9022 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
9023 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
9024 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
9025 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9026
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9027 if (space_bounds)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9028 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9029 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9030
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9031 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
9032 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
9033 if (pcm->width > 0)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9034 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9035 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
9036 pcm->lbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9037 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
9038 pcm->rbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9039 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
9040 pcm->width);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9041 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
9042 pcm->ascent);
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
9043 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
9044 pcm->descent);
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9045
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9046 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
9047 pcm->lbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9048 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
9049 pcm->rbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9050 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
9051 pcm->width);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9052 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
9053 pcm->ascent);
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
9054 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
9055 pcm->descent);
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9056 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9057 if (
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9058 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9059 font->mac_style == NULL &&
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9060 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9061 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
9062 && 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
9063 && 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
9064 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9065 /* 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
9066 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
9067 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
9068 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9069 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9070
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
9071 #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
9072 /* 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
9073 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
9074 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
9075 if (
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
9076 #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
9077 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
9078 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
9079 (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
9080 || 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
9081 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
9082 #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
9083
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9084 return font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9085 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9086
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9087
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9088 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9089 mac_unload_font (dpyinfo, font)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9090 struct mac_display_info *dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9091 XFontStruct *font;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9092 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9093 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
9094 #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
9095 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
9096 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9097 int i;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9098
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9099 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
9100 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
9101 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
9102 xfree (font->bounds.rows);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9103 ATSUDisposeStyle (font->mac_style);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9104 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9105 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9106 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
9107 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
9108 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
9109 #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
9110 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
9111 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
9112 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
9113 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
9114 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9115 xfree (font);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9116 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9117
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9118
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9119 /* 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
9120 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
9121 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
9122 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
9123
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9124 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
9125 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
9126 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
9127 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
9128 int size;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9129 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9130 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
9131 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
9132
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9133 /* 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
9134 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
9135 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
9136 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
9137
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9138 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
9139 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9140 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
9141 int i;
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 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
9144 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
9145 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
9146 && (!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
9147 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
9148 || !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
9149 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
9150 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
9151 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9152 else
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9153 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
9154
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9155 /* 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
9156 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9157 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
9158 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
9159 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9160
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9161 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
9162
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9163 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
9164 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
9165 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
9166 if (!font)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9167 return NULL;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9168
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9169 /* 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
9170 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
9171 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
9172 break;
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 /* 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
9175 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
9176 && 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
9177 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9178 int sz;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9179 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
9180 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
9181 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
9182 = (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
9183 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9184
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9185 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
9186 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
9187 ++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
9188
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9189 /* 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
9190 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
9191 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
9192 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
9193 fontp->font_idx = i;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9194 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
9195 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
9196
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9197 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
9198 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9199 /* Fixed width font. */
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9200 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
9201 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9202 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9203 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9204 XChar2b char2b;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9205 XCharStruct *pcm;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9206
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9207 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
9208 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
9209 if (pcm)
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9210 fontp->space_width = pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9211 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9212 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
9213
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9214 if (pcm)
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9215 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9216 int width = pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9217 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
9218 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
9219 width += pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9220 fontp->average_width = width / 95;
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 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
9224 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
9225
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
9226 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
9227 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
9228
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9229 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
9230 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
9231 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9232 /* 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
9233 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
9234 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
9235 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
9236 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
9237 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9238
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9239 /* 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
9240 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
9241 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
9242 (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
9243 2:0xA020..0xFF7F). For the moment, we don't know which charset
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9244 uses this font. So, we set information in fontp->encoding[1]
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9245 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
9246 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
9247 if (font->mac_scriptcode == smJapanese)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9248 fontp->encoding[1] = 4;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9249 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9250 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9251 fontp->encoding[1]
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9252 = (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
9253 /* 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
9254 ? (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
9255 ? (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
9256 ? 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
9257 : 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
9258 : 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
9259 /* 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
9260 : (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
9261 ? (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
9262 ? (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
9263 ? (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
9264 ? 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
9265 : 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
9266 : 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
9267 : 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
9268 : (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
9269 ? (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
9270 ? 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
9271 : 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
9272 : 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
9273 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9274
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9275 #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
9276 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
9277 = (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
9278 ? (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
9279 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
9280 = (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
9281 ? (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
9282 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
9283 = (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
9284 ? (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
9285 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9286 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
9287 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
9288 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
9289 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9290
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9291 /* 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
9292 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
9293 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
9294 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
9295 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
9296 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
9297 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9298 return fontp;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9299 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9300 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9301
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9302
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9303 /* 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
9304 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
9305
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9306 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
9307 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
9308 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
9309 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
9310 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9311 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
9312 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9313
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9314 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
9315 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
9316 && (!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
9317 || !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
9318 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
9319 return NULL;
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 /* 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
9324 `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
9325
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9326 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9327 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
9328 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
9329 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9330 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
9331
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9332 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
9333 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9334 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
9335 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
9336 && 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
9337 && (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
9338 >= 0))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9339 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9340 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9341 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
9342 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9343 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
9344 = (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
9345
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9346 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
9347 xfree (ccl);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9348 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9349 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
9350 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9351 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9352
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9353 #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
9354 /* 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
9355 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
9356 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
9357 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
9358 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
9359
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9360 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
9361 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
9362
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9363 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
9364 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
9365 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
9366 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
9367 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
9368 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
9369
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
9370 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
9371 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
9372 {
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9373 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
9374 }
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9375
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9376 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
9377 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
9378 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
9379 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
9380 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
9381 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9382 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
9383 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
9384 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
9385 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
9386 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
9387 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
9388 kEventParamATSUFontSize,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9389 kEventParamFMFontFamily,
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
9390 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
9391 kEventParamFMFontSize,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9392 kEventParamFontColor};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9393 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
9394 typeATSUSize,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9395 typeFMFontFamily,
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
9396 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
9397 typeFMFontSize,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9398 typeFontColor};
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9399
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9400 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
9401 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
9402 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
9403
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9404 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
9405 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9406 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
9407 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
9408 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
9409 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
9410 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
9411 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9412
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9413 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
9414 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
9415 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
9416 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
9417 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
9418 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9419 }
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 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
9422 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
9423 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
9424 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
9425 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
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 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
9428 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9429
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
9430 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
9431 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
9432 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9433 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
9434 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9435 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
9436
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9437 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
9438 {{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
9439 {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
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 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
9442 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
9443 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
9444 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
9445 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
9446
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9447 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
9448 }
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
9449
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
9450 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
9451 }
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
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9453 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
9454 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
9455 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
9456 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
9457 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9458 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
9459 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
9460 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
9461
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
9462 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
9463 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
9464
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9465 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
9466 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9467 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
9468
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9469 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
9470 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9471 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
9472
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9473 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
9474 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
9475 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
9476 }
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9477 }
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9478
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9479 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
9480 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
9481 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9482 {
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
9483 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
9484 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9485 FontSelectionQDStyle qd_style;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9486
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9487 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
9488 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
9489 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
9490 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
9491 qd_style.hasColor = false;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9492
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9493 err = SetFontInfoForSelection (kFontSelectionQDType,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9494 1, &qd_style, target);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9495 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9496 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9497 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
9498 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
9499 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9500
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9501 return err;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9502 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9503 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9504
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9505
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9506 /* 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
9507
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
9508 #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
9509 #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
9510 #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
9511 #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
9512 #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
9513 #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
9514 #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
9515 #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
9516 #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
9517 #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
9518 #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
9519 #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
9520 #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
9521 #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
9522 #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
9523 #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
9524
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9525 #if __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9526 #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
9527 #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
9528 #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
9529
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
9530 #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
9531 #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
9532
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9533 #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
9534
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9535 #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
9536 #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
9537
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9538 #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
9539
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9540 #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
9541 #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
9542 #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
9543
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9544 /* 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
9545 Lisp_Object Qreverse;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9546
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9547
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9548 /* 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
9549 Lisp_Object Vmac_control_modifier;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9550
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9551 /* 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
9552 Lisp_Object Vmac_option_modifier;
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
9553
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9554 /* 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
9555 Lisp_Object Vmac_command_modifier;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9556
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9557 /* 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
9558 Lisp_Object Vmac_function_modifier;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9559
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9560 /* 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
9561 a three button mouse */
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9562 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
9563
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
9564 #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
9565 /* 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
9566 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
9567 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
9568
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
9569 /* 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
9570 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
9571 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
9572
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
9573 /* 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
9574 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
9575 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
9576 #endif
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9577
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9578 /* 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
9579 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
9580 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
9581 static struct input_event *read_socket_inev = NULL;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9582
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
9583 /* 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
9584 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
9585
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9586 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
9587
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9588 /* Apple Events */
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
9589 #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
9590 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
9591 #ifdef MAC_OSX
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9592 extern Lisp_Object Qwindow;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9593 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
9594 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9595 #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
9596 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
9597 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
9598 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
9599 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
9600 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
9601 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
9602 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
9603 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
9604 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
9605 #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
9606 #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
9607 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
9608 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
9609 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
9610 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
9611 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
9612 Lisp_Object *));
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9613 extern OSErr init_coercion_handler P_ ((void));
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9614
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9615 /* 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
9616 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
9617 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
9618
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9619 #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
9620 /* 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
9621 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
9622
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
9623 #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
9624 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
9625 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
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
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9628
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9629 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
9630 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
9631
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9632 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
9633 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
9634
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9635 /* 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
9636 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
9637 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
9638 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
9639 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
9640 <linefeed>). */
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9641 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
9642 /*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
9643 /*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
9644 /*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
9645
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9646 /*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
9647 /*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
9648 /*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
9649 /*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
9650
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9651 /*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
9652 /*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
9653 /*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
9654 /*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
9655
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9656 /*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
9657 /*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
9658 /*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
9659 /*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
9660
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9661 /*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
9662 /*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
9663 /*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
9664 /*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
9665
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9666 /*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
9667 /*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
9668 /*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
9669 /*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
9670 };
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 #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
9673 /* 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
9674 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
9675 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
9676 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
9677 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
9678 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
9679 /*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
9680 /*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
9681 /*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
9682
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9683 /*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
9684 /*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
9685 /*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
9686 /*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
9687
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9688 /*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
9689 /*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
9690 /*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
9691 /*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
9692
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9693 /*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
9694 /*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
9695 /*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
9696 /*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
9697
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9698 /*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
9699 /*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
9700 /*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
9701 /*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
9702
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9703 /*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
9704 /*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
9705 /*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
9706 /*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
9707 };
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9708 #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
9709
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9710 static int
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
9711 #if TARGET_API_MAC_CARBON
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9712 mac_to_emacs_modifiers (UInt32 mods)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9713 #else
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9714 mac_to_emacs_modifiers (EventModifiers mods)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9715 #endif
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9716 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9717 unsigned int result = 0;
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9718 if (mods & shiftKey)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9719 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
9720
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9721 /* Deactivated to simplify configuration:
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9722 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
9723 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
9724 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
9725 composed one.
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9726 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
9727 (( !NILP(Vmac_option_modifier) ||
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9728 ((mods & cmdKey) || (mods & controlKey))))) */
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9729
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
9730 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
9731 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
9732 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9733 result |= XUINT(val);
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
9734 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9735 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
9736 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
9737 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9738 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
9739 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9740 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
9741 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
9742 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9743 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
9744 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9745
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9746 #ifdef MAC_OSX
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9747 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
9748 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
9749 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9750 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
9751 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
9752 #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
9753
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9754 return result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9755 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9756
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9757 static UInt32
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9758 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
9759 UInt32 modifiers;
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9760 {
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9761 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
9762 (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
9763 | (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
9764 | (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
9765
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9766 #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
9767 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
9768 (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
9769 #endif
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9770
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9771 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
9772 }
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9773
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9774 static int
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9775 mac_get_emulated_btn ( UInt32 modifiers )
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9776 {
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9777 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
9778 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
9779 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
9780 if (modifiers & cmdKey)
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9781 result = cmdIs3 ? 2 : 1;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9782 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
9783 result = cmdIs3 ? 1 : 2;
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9784 }
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9785 return result;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9786 }
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9787
75200
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9788 #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
9789 /***** 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
9790 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
9791 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
9792
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9793 int
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9794 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
9795 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
9796 {
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9797 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
9798 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
9799 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
9800 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
9801
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9802 /* 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
9803 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
9804 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
9805 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
9806 return 0;
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9807
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9808 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
9809 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
9810 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
9811
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9812 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
9813 & (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
9814 | 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
9815
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9816 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
9817 }
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9818 #endif
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9819
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
9820 #if TARGET_API_MAC_CARBON
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9821 /* Obtains the event modifiers from the event ref and then calls
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9822 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
9823 static int
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9824 mac_event_to_emacs_modifiers (EventRef eventRef)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9825 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
9826 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
9827
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9828 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9829 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
9830 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
9831 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
9832 (class == kEventClassMouse || class == kEventClassCommand))
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9833 {
56277
fd126130c3cd macterm.c (mac_get_emulated_btn)
Steven Tamm <steventamm@mac.com>
parents: 56271
diff changeset
9834 mods &= ~(optionKey | cmdKey);
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9835 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9836 return mac_to_emacs_modifiers (mods);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9837 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9838
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9839 /* 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
9840 code in the emacs input_event. */
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9841 static int
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9842 mac_get_mouse_btn (EventRef ref)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9843 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9844 EventMouseButton result = kEventMouseButtonPrimary;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9845 GetEventParameter (ref, kEventParamMouseButton, typeMouseButton, NULL,
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9846 sizeof (EventMouseButton), NULL, &result);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9847 switch (result)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9848 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9849 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
9850 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
9851 return 0;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9852 else {
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9853 UInt32 mods = 0;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9854 GetEventParameter (ref, kEventParamKeyModifiers, typeUInt32, NULL,
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9855 sizeof (UInt32), NULL, &mods);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9856 return mac_get_emulated_btn(mods);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9857 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9858 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
9859 return mac_wheel_button_is_mouse_2 ? 2 : 1;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9860 case kEventMouseButtonTertiary:
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9861 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
9862 return mac_wheel_button_is_mouse_2 ? 1 : 2;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9863 default:
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9864 return 0;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9865 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9866 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9867
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9868 /* Normally, ConvertEventRefToEventRecord will correctly handle all
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9869 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
9870 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
9871 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
9872 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
9873 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
9874 XTread_socket loop). */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9875 static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9876 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9877 OSStatus err;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9878 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
9879 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
9880
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9881 if (result)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9882 return result;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9883
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9884 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
9885 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9886 case kEventClassMouse:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9887 switch (GetEventKind (eventRef))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9888 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9889 case kEventMouseDown:
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9890 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
9891 result = 1;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9892 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9893
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9894 case kEventMouseUp:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9895 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
9896 result = 1;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9897 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9898
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9899 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9900 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9901 }
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
9902 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9903
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9904 case kEventClassKeyboard:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9905 switch (GetEventKind (eventRef))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9906 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9907 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
9908 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
9909 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
9910 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
9911 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
9912 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
9913 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
9914 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
9915 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
9916 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9917 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
9918 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
9919
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9920 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
9921 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
9922 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
9923 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
9924 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
9925 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
9926 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
9927 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
9928 {
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 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
9930 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
9931 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
9932 }
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9933 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9934 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9935
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9936 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9937 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9938 }
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
9939 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9940
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9941 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9942 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9943 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9944
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9945 if (result)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9946 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9947 /* 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
9948 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
9949
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9950 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
9951 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
9952 /* 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
9953 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
9954 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
9955 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
9956 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
9957
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9958 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
9959 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9960
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9961 return result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9962 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9963
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9964 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9965
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
9966 #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
9967 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9968 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
9969 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9970 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
9971 MenuRef menu;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9972
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9973 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
9974 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
9975 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9976 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
9977 DrawMenuBar ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9978
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9979 #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
9980 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
9981 if (menu != NULL)
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
9982 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
9983 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9984 abort ();
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
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 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9987
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9988
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9989 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9990 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
9991 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9992 #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
9993 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
9994 InitFonts ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9995 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
9996 InitWindows ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9997 InitMenus ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9998 TEInit ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9999 InitDialogs (NULL);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10000 #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
10001 InitCursor ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10002
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10003 #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
10004 /* 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
10005 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
10006
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10007 /* 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
10008 complicated scripts */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10009 MaxApplZone ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10010 MoreMasters ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10011 #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
10012 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10013
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10014 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10015 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
10016 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10017 SInt32 physical_ram_size, logical_ram_size;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10018
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10019 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
10020 || 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
10021 || 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
10022 || 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
10023 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10024 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
10025 exit (1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10026 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10027 }
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10028 #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
10029
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10030 static void
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10031 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
10032 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10033 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
10034
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10035 BeginUpdate (win);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10036
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10037 /* 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
10038 below. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10039 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
10040 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10041 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
10042 {
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
10043 /* 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
10044 #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
10045 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
10046 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
10047 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
10048 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10049 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10050 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
10051 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10052 Rect r;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10053 #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
10054 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
10055
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
10056 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
10057 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
10058 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
10059 #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
10060 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
10061 #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
10062 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
10063 DisposeRgn (region);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10064 #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
10065 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
10066 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
10067 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
10068 #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
10069 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10070 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10071
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10072 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
10073 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10074
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10075 static int
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10076 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
10077 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10078 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
10079
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10080 if (!win)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10081 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10082
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10083 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
10084 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
10085 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
10086 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10087
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10088 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10089 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10090
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10091 #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
10092 static OSStatus
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10093 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
10094 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10095 OSStatus err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10096 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
10097
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10098 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
10099
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10100 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
10101 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10102 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
10103 && 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
10104 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
10105 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
10106 && 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
10107 && 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
10108 && CONSP (saved_ts_script_language_on_focus)
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10109 && 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
10110 XCAR (Vmac_ts_script_language_on_focus))
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10111 && 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
10112 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
10113 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10114 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
10115 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
10116 slptr = &slrec;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10117 }
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
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10120 if (slptr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10121 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10122 #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
10123 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
10124 kKeyboardInputMethodClass);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10125 #else
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10126 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
10127 #endif
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10128 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
10129 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
10130
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10131 /* 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
10132 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
10133 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
10134 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10135
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10136 return err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10137 }
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 static OSStatus
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10140 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
10141 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10142 OSStatus err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10143 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
10144
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10145 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
10146
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10147 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
10148 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10149 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
10150 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
10151 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
10152 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10153 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
10154 && 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
10155 && 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
10156 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10157 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
10158 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
10159 slptr = &slrec;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10160 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10161
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10162 if (slptr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10163 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10164 #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
10165 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
10166 kKeyboardInputMethodClass);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10167 #else
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10168 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
10169 #endif
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10170 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10171
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10172 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
10173
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10174 return err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10175 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10176 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10177
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
10178 #if !TARGET_API_MAC_CARBON
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
10179 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10180 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
10181 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10182 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
10183 SInt16 da_driver_refnum;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10184
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10185 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
10186 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
10187 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10188 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10189 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
10190 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
10191 }
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
10192 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10193 #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
10194
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10195 /* 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
10196 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
10197
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10198 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
10199 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
10200 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
10201 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
10202 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10203 Rect limit_rect;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10204 int rows, columns, width, height;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10205 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
10206 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
10207 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
10208 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10209 Rect new_rect;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10210 #else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10211 long grow_size;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10212 #endif
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10213
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10214 if (size_hints->flags & PMinSize)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10215 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10216 min_width = size_hints->min_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10217 min_height = size_hints->min_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10218 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10219 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
10220
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10221 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10222 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
10223 return;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10224 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
10225 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
10226 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10227 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
10228 /* 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
10229 if (grow_size == 0)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10230 return;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10231 height = HiWord (grow_size);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10232 width = LoWord (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 (width != FRAME_PIXEL_WIDTH (f)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10236 || height != FRAME_PIXEL_HEIGHT (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10237 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10238 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
10239 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10240
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10241 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
10242 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10243 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10244
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10245
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10246 #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
10247 static Point
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10248 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
10249 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
10250 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10251 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
10252 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
10253 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
10254 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
10255 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
10256
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10257 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
10258 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
10259 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
10260 /* 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
10261 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
10262 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
10263 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
10264 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
10265 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
10266 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
10267
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10268 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
10269 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10270 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10271
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10272 /* 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
10273 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
10274 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
10275 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
10276
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10277 static void
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10278 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
10279 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10280 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
10281 int width, height;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10282 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
10283 #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
10284 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
10285
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10286 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
10287 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
10288 && 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
10289 && 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
10290 zoom_in_or_out = inZoomIn;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10291 else
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10292 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
10293
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10294 #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
10295 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
10296 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10297 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
10298 #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
10299 GrafPtr save_port;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10300 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
10301 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
10302 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
10303
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10304 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
10305
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10306 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
10307
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10308 /* 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
10309 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
10310 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
10311 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10312 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
10313 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
10314
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10315 /* 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
10316 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
10317 - (**((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
10318
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10319 /* 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
10320 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
10321 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
10322 InsetRect (&zoom_rect, 8, 4); /* not too tight */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10323
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10324 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
10325 + 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
10326
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10327 /* 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
10328 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
10329 zoom_rect.bottom =
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10330 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
10331
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10332 (**((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
10333 = zoom_rect;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10334 }
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10335
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10336 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
10337
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10338 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
10339 #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
10340
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10341 #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
10342 /* 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
10343 port_rect = w->portRect;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10344 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
10345 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
10346
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10347 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
10348 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
10349 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10350 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10351
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10352 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
10353 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
10354 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
10355 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
10356 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10357 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
10358
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10359 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
10360 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10361 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
10362 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
10363 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10364 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
10365 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10366 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
10367 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
10368 else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10369 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
10370 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
10371 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
10372 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10373 else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10374 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10375 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
10376 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
10377 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
10378 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
10379 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
10380 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
10381 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
10382 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
10383 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
10384 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
10385 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
10386 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
10387 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10388 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10389
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10390 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
10391 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
10392 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
10393 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
10394 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
10395 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
10396 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
10397 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10398 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
10399 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
10400 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
10401
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10402 #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
10403 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
10404 && 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
10405 && 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
10406 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
10407 #endif
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 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
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 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
10412 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
10413 #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
10414 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
10415 && 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
10416 && 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
10417 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
10418 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10419 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10420 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
10421 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10422 /* 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
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 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
10425 #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
10426 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
10427 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
10428
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10429 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
10430 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
10431 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
10432 (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
10433 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10434 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
10435 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
10436 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
10437 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
10438
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10439 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
10440 || 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
10441 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10442 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
10443 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
10444 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10445 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
10446 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
10447 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10448
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10449 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
10450 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10451 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
10452 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
10453 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
10454 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
10455 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
10456 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
10457 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
10458
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10459 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
10460 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
10461 kUCKeyTranslateNoDeadKeysMask,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10462 &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
10463 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
10464 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
10465 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
10466 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10467 #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
10468
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10469 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
10470 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10471 /* 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
10472 - 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
10473 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
10474 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
10475 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
10476 /* 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
10477 modifiers. */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10478 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
10479 /* 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
10480 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
10481 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
10482 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
10483 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
10484
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10485 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
10486 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
10487 /* 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
10488 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
10489 &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
10490 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
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 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
10493 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
10494 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10495 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10496 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10497
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10498 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
10499 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10500 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
10501 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
10502 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10503
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10504 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
10505 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
10506 & (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
10507 | 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
10508
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10509 #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
10510 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
10511 && 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
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 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
10514 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
10515 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
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 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
10518 kTextLanguageDontCare,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10519 kTextRegionDontCare,
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10520 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
10521 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
10522 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
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 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
10525 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
10526 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
10527
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10528 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
10529 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
10530 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
10531 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
10532 &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
10533 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
10534 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
10535 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
10536 }
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 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10539
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10540 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
10541 && 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
10542 && 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
10543 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10544 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
10545
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10546 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
10547 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
10548 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
10549 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
10550 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
10551 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
10552 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
10553 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10554 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10555
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10556 void
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10557 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
10558 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
10559 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
10560 {
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10561 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
10562
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10563 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
10564
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10565 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
10566 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
10567 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
10568 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
10569 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
10570 /* 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
10571 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
10572 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
10573 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
10574 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10575
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10576 #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
10577 static OSStatus
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10578 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
10579 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
10580 AEEventClass class;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10581 AEEventID id;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10582 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
10583 EventRef event;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10584 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
10585 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
10586 const EventParamType *types;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10587 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10588 OSStatus err = eventNotHandledErr;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10589 Lisp_Object binding;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10590
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10591 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
10592 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
10593 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10594 if (INTEGERP (binding))
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10595 err = XINT (binding);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10596 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10597 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10598 AppleEvent apple_event;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10599 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
10600 names, types,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10601 &apple_event);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10602 if (err == noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10603 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10604 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
10605 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
10606 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
10607 }
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 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10610
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10611 return err;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10612 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10613
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10614 void
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10615 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
10616 WindowRef window;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10617 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
10618 SInt16 modifiers;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10619 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
10620 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10621 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
10622
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10623 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
10624
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10625 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
10626 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
10627 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
10628 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
10629 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
10630 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
10631 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
10632 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
10633 }
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10634
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10635 #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
10636 OSStatus
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10637 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
10638 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
10639 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10640 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
10641 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
10642 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
10643 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
10644 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
10645 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
10646 {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
10647 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
10648 {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
10649
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10650 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
10651 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10652 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
10653 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
10654 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
10655 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
10656 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
10657 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10658
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10659 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
10660 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
10661 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
10662 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
10663 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
10664 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10665
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10666 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10667 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10668 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10669
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10670 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
10671 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
10672 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
10673
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10674 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
10675 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10676 #endif /* MAC_OSX */
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10677
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10678 static pascal OSStatus
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10679 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
10680 EventHandlerCallRef next_handler;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10681 EventRef event;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10682 void *data;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10683 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
10684 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
10685 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
10686 struct frame *f;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10687 UInt32 attributes;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10688 XSizeHints *size_hints;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10689
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10690 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
10691 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
10692 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
10693 return eventNotHandledErr;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10694
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10695 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
10696 switch (GetEventKind (event))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10697 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10698 /* -- 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
10699
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10700 case kEventWindowUpdate:
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10701 result = CallNextEventHandler (next_handler, event);
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10702 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
10703 break;
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10704
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10705 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
10706 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
10707 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10708
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10709 /* -- 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
10710
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10711 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
10712 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
10713 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
10714 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10715 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
10716
82345
328a50c8203c [TARGET_API_MAC_CARBON] (mac_handle_window_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82340
diff changeset
10717 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
10718 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
10719 else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10720 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10721 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
10722 #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
10723 kWindowCascadeStartAtParentWindowScreen
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10724 #else
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10725 kWindowCascadeOnParentWindowScreen
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10726 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10727 );
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
10728 #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
10729 /* 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
10730 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
10731 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
10732 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
10733 && 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
10734 || (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
10735 && 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
10736 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
10737 #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
10738 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10739 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
10740 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10741 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10742
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10743 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
10744 /* 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
10745 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
10746 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
10747 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
10748 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
10749 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
10750 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
10751 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
10752 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10753
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10754 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
10755 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
10756 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
10757 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
10758 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
10759 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
10760 break;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10761
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10762 case kEventWindowBoundsChanging:
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10763 result = CallNextEventHandler (next_handler, event);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10764 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
10765 break;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10766
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10767 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
10768 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
10769 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
10770 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10771
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10772 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
10773 if ((attributes & kWindowBoundsChangeUserResize)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10774 && ((size_hints->flags & (PResizeInc | PBaseSize | PMinSize))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10775 == (PResizeInc | PBaseSize | PMinSize)))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10776 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10777 Rect bounds;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10778 int width, height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10779
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10780 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
10781 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
10782 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
10783 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
10784 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10785
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10786 width = bounds.right - bounds.left;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10787 height = bounds.bottom - bounds.top;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10788
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10789 if (width < size_hints->min_width)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10790 width = size_hints->min_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10791 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10792 width = size_hints->base_width
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10793 + (int) ((width - size_hints->base_width)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10794 / (float) size_hints->width_inc + .5)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10795 * size_hints->width_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10796
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10797 if (height < size_hints->min_height)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10798 height = size_hints->min_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10799 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10800 height = size_hints->base_height
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10801 + (int) ((height - size_hints->base_height)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10802 / (float) size_hints->height_inc + .5)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10803 * size_hints->height_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10804
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10805 bounds.right = bounds.left + width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10806 bounds.bottom = bounds.top + height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10807 SetEventParameter (event, kEventParamCurrentBounds,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10808 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
10809 result = noErr;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10810 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10811 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
10812
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10813 case kEventWindowBoundsChanged:
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10814 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
10815 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
10816 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
10817 break;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10818
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10819 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
10820 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10821 Rect bounds;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10822
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10823 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
10824 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
10825 NULL, &bounds);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10826 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
10827 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10828 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
10829
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10830 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
10831 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
10832 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
10833 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
10834 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10835 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10836
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10837 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
10838 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
10839
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10840 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
10841 break;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10842
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10843 /* -- 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
10844
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10845 case kEventWindowClose:
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10846 {
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10847 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
10848
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10849 EVENT_INIT (buf);
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10850 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
10851 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
10852 buf.arg = Qnil;
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10853 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
10854 }
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10855 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
10856 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10857
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10858 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
10859 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
10860 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
10861 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10862
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10863 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10864 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
10865
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10866 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
10867 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
10868 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
10869 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
10870 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10871 break;
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10872
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10873 #ifdef MAC_OSX
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10874 case kEventWindowToolbarSwitchMode:
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10875 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10876 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
10877 kEventParamWindowMouseLocation,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10878 kEventParamKeyModifiers,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10879 kEventParamMouseButton,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10880 kEventParamClickCount,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10881 kEventParamMouseChord};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10882 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
10883 typeQDPoint,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10884 typeUInt32,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10885 typeMouseButton,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10886 typeUInt32,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10887 typeUInt32};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10888 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
10889
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10890 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
10891 Qwindow,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10892 Qtoolbar_switch_mode,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10893 event, num_params,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10894 names, types);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10895 }
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10896 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
10897 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
10898 break;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10899 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10900
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10901 #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
10902 /* -- 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
10903
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10904 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
10905 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
10906 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
10907 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
10908 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10909
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10910 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
10911 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
10912 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
10913 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
10914 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10915 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10916
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10917 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10918 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10919 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10920
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10921 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
10922 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10923
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10924 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
10925 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
10926 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
10927 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
10928 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
10929 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10930 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
10931
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10932 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
10933 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10934 #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
10935 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
10936 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
10937 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10938
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10939 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
10940 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
10941 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10942 #endif
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 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10945 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10946 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10947
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10948 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
10949 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
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 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
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
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10954 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
10955 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
10956 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
10957 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
10958 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
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 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
10961 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
10962 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
10963
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10964 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
10965 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
10966 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10967 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
10968 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
10969 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
10970 /* 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
10971 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
10972 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
10973 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
10974 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
10975 if (result != eventNotHandledErr)
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
10976 break;
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
10977
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
10978 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
10979 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
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 #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
10982 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
10983 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10984 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
10985 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10986 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10987 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10988
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10989 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
10990 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10991
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10992 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
10993 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
10994 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
10995 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
10996 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10997
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
10998 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
10999 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
11000 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
11001 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
11002 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11003
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11004 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
11005 typeUInt32, NULL,
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11006 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
11007 if (err != noErr)
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11008 break;
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
11009
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
11010 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
11011 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
11012 ((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
11013 (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
11014 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
11015 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
11016 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11017
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11018 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11019 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11020 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11021
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11022 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
11023 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11024
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11025 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
11026 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
11027 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
11028 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
11029 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
11030 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11031 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
11032 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
11033 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
11034 {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
11035 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
11036 {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
11037 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
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 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
11040 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
11041 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
11042 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
11043
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11044 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
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 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
11047 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
11048 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
11049 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11050
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11051 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
11052 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
11053 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
11054
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11055 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
11056 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11057
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11058 /* 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
11059 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
11060 ID. */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11061 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
11062 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
11063 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
11064 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
11065 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
11066 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
11067 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11068
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11069 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11070 abort ();
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
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11073 return result;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11074 }
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11075
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11076 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
11077 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
11078 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
11079 EventRef event;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11080 void *data;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11081 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11082 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
11083
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11084 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
11085 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11086 case kEventMouseWheelMoved:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11087 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11088 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
11089 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
11090 EventMouseWheelAxis axis;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11091 SInt32 delta;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11092 Point point;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11093
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11094 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
11095 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
11096 break;
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11097
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11098 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
11099
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
11100 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
11101 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
11102 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
11103 || 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
11104 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11105
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
11106 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
11107 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
11108 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
11109 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
11110 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11111
76437
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11112 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
11113 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
11114 NULL, &point);
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11115 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
11116 break;
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11117
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11118 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
11119 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
11120 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
11121 || 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
11122 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
11123 break;
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11124
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
11125 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
11126 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
11127 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
11128 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
11129 break;
76437
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
11130
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11131 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
11132 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
11133 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
11134 (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
11135 | ((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
11136 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
11137 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
11138 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
11139
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11140 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
11141 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11142 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11143
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
11144 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
11145 abort ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11146 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11147
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11148 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
11149 }
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11150
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11151 #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
11152 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
11153 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
11154 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
11155 EventRef event;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11156 void *data;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11157 {
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11158 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
11159 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
11160 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
11161 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
11162 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
11163 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
11164 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
11165 {kEventParamTextInputSendComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11166 kEventParamTextInputSendRefCon,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11167 kEventParamTextInputSendSLRec,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11168 kEventParamTextInputSendFixLen,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11169 kEventParamTextInputSendText,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11170 kEventParamTextInputSendUpdateRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11171 kEventParamTextInputSendHiliteRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11172 kEventParamTextInputSendClauseRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11173 kEventParamTextInputSendPinRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11174 kEventParamTextInputSendTextServiceEncoding,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11175 kEventParamTextInputSendTextServiceMacEncoding,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11176 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
11177 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
11178 {typeComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11179 typeLongInteger,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11180 typeIntlWritingCode,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11181 typeLongInteger,
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11182 #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
11183 typeUnicodeText,
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11184 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11185 typeChar,
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11186 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11187 typeTextRangeArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11188 typeTextRangeArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11189 typeOffsetArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11190 typeTextRange,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11191 typeUInt32,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11192 typeUInt32,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11193 typeUInt32};
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
11194 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
11195 {kEventParamTextInputSendComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11196 kEventParamTextInputSendRefCon,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11197 kEventParamTextInputSendSLRec,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11198 kEventParamTextInputSendText};
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
11199 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
11200 {typeComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11201 typeLongInteger,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11202 typeIntlWritingCode,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11203 typeUnicodeText};
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11204
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11205 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
11206 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
11207 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
11208
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11209 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
11210 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11211 case kEventTextInputUpdateActiveInputArea:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11212 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
11213 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
11214 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
11215 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
11216 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
11217 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
11218 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
11219 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
11220 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11221
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11222 case kEventTextInputUnicodeForKeyEvent:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11223 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11224 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
11225 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
11226
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11227 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
11228 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
11229 &kbd_event);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11230 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
11231 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
11232 typeUInt32, NULL,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11233 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
11234 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
11235 /* 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
11236 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
11237 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11238 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
11239 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
11240 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
11241 NULL);
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11242 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
11243 {
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11244 UniChar code;
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11245
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11246 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
11247 typeUnicodeText, NULL,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11248 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
11249 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
11250 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11251 /* 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
11252 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
11253 {
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11254 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
11255
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11256 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
11257 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
11258 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
11259 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
11260 && 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
11261 {
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11262 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
11263 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
11264
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11265 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
11266 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
11267 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
11268 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
11269 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
11270 (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
11271 & (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
11272 | 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
11273 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
11274 }
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11275 }
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11276 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11277 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11278 }
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11279 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
11280 {
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11281 /* 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
11282 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
11283 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
11284 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
11285 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
11286 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
11287 result = noErr;
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11288 }
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11289 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11290 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11291
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11292 case kEventTextInputOffsetToPos:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11293 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11294 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
11295 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
11296 Point p;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11297
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11298 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
11299 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11300
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11301 /* 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
11302 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
11303 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
11304 {
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11305 /* 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
11306 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
11307 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
11308 }
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11309 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
11310 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11311 /* 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
11312 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
11313 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
11314 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11315 else
81656
fb6a1213c5e8 [USE_MAC_TSM] (mac_handle_text_input_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81570
diff changeset
11316 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11317
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11318 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
11319 + 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
11320 + 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
11321 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
11322 + 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
11323 + 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
11324 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
11325 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
11326 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
11327 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
11328 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11329 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11330
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11331 default:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11332 abort ();
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11333 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11334
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11335 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
11336 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
11337 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
11338 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
11339 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
11340 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11341 #endif
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11342 #endif /* TARGET_API_MAC_CARBON */
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11343
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11344
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
11345 OSStatus
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11346 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
11347 WindowRef window;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11348 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
11349 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
11350
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11351 #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
11352 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
11353 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11354 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
11355 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11356 /* -- 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
11357 {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
11358 /* -- 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
11359 {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
11360 {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
11361 {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
11362 {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
11363 {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
11364 {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
11365 {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
11366 {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
11367 /* -- 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
11368 {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
11369 {kEventClassWindow, kEventWindowGetIdealSize},
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11370 #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
11371 {kEventClassWindow, kEventWindowToolbarSwitchMode},
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11372 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11373 #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
11374 /* -- 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
11375 {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
11376 {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
11377 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11378 };
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11379 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
11380
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11381 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
11382 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
11383
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11384 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
11385 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
11386 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
11387 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11388 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11389
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
11390 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
11391 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
11392
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
11393 return err;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11394 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11395
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
11396 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
11397 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
11398 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
11399 {
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11400 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
11401 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11402
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11403 #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
11404 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
11405 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
11406 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11407 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
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 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
11410 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11411 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
11412 #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
11413 {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
11414 {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
11415 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11416 };
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11417
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11418 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
11419 (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
11420 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
11421 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
11422 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11423
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 (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
11425 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11426 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
11427 {{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
11428 {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
11429 {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
11430
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11431 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
11432 (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
11433 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
11434 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
11435 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11436
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11437 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
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 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
11440 {{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
11441
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11442 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
11443 (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
11444 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
11445 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
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
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11448 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
11449 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11450 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
11451 {{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
11452
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11453 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
11454 (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
11455 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
11456 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
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
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11459 #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
11460 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
11461 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11462 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
11463 {{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
11464 {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
11465 {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
11466
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11467 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
11468 (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
11469 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
11470 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
11471 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11472 #endif
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 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
11475 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
11476
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11477 #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
11478 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
11479 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
11480 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11481
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11482 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
11483 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11484 #endif
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11485
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11486 static pascal void
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11487 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
11488 AppleEvent *event;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11489 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11490 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
11491 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11492
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11493 #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
11494 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
11495 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
11496 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
11497 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
11498 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
11499 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11500 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
11501 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11502 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11503
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11504 static OSErr
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11505 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
11506 {
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11507 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
11508
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11509 #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
11510 #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
11511 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
11512 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11513 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11514 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
11515 NULL);
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11516 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11517 #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
11518 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
11519 #endif
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11520 #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
11521 #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
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 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
11524 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
11525
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11526 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
11527 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
11528 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
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 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
11531 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
11532 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
11533 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
11534 #endif
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11535
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11536 return err;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11537 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11538
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11539 static void
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11540 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
11541 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
11542 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11543 #ifdef MAC_OSX
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11544 /* 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
11545 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
11546 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
11547 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
11548 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11549 CGDisplayErr err;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11550 CGDisplayCount ndisps;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11551 CGDirectDisplayID *displays;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11552
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11553 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
11554 if (err == noErr)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11555 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11556 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
11557 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
11558 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11559 if (err == noErr)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11560 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11561 CGRect bounds = CGRectZero;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11562
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11563 while (ndisps-- > 0)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11564 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
11565 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
11566 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
11567 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11568 else
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 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
11571 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
11572 }
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 #else /* !MAC_OSX */
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11575 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11576 GDHandle gdh = GetMainDevice ();
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11577 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
11578
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11579 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
11580 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
11581 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
11582 break;
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 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
11585 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
11586 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
11587
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11588 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
11589 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
11590 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11591 #endif /* !MAC_OSX */
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11592 }
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
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11595 #if __profile__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11596 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11597 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
11598 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11599 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
11600 ProfilerTerm ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11601 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11602 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11603
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11604 /* 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
11605 (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
11606 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
11607 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
11608 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
11609 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
11610 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
11611 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
11612 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
11613 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
11614 (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
11615 (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
11616 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
11617
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
11618 #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
11619 #undef main
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11620 int
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11621 main (void)
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 #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
11624 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
11625 exit(1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11626 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11627
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11628 #if __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11629 /* 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
11630 _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
11631 _ftype = 'TEXT';
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11632 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11633
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11634 do_init_managers ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11635
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11636 do_get_menus ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11637
53651
c7d570b7ba42 (main) [USE_LSB_TAG]: Don't range check the ram.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53606
diff changeset
11638 #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
11639 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
11640 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11641
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11642 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
11643
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11644 init_environ ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11645
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
11646 init_coercion_handler ();
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
11647
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11648 initialize_applescript ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11649
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11650 init_apple_event_handler ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11651
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11652 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
11653
44890
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 char **argv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11656 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
11657
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11658 /* 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
11659 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
11660 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
11661 argc++;
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 /* 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
11664 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
11665
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11666 #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
11667 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
11668 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11669
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11670 /* 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
11671 (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
11672 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11673
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11674 /* 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
11675 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11676 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11677 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11678
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11679 #if !TARGET_API_MAC_CARBON
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11680 static RgnHandle mouse_region = NULL;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11681
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11682 Boolean
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11683 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
11684 EventRecord *er;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11685 UInt32 sleep_time;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11686 Boolean dequeue;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11687 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11688 static EventRecord er_buf = {nullEvent};
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11689 UInt32 target_tick, current_tick;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11690 EventMask event_mask;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11691
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11692 if (mouse_region == NULL)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11693 mouse_region = NewRgn ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11694
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11695 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
11696 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
11697 event_mask -= highLevelEventMask;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11698
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11699 current_tick = TickCount ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11700 target_tick = current_tick + sleep_time;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11701
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11702 if (er_buf.what == nullEvent)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11703 while (!WaitNextEvent (event_mask, &er_buf,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11704 target_tick - current_tick, mouse_region))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11705 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11706 current_tick = TickCount ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11707 if (target_tick <= current_tick)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11708 return false;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11709 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11710
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11711 *er = er_buf;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11712 if (dequeue)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11713 er_buf.what = nullEvent;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11714 return true;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11715 }
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11716 #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
11717
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11718 #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
11719 OSStatus
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11720 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
11721 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11722 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
11723 OSStatus err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11724
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11725 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
11726 kEventAttributeNone, &event);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11727 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
11728 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11729 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
11730
77141
a2c0f9d173e8 [TARGET_API_MAC_CARBON] (mac_post_mouse_moved_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76746
diff changeset
11731 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
11732 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
11733 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
11734 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11735 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
11736 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11737 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
11738
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11739 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
11740 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
11741 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11742 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
11743 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
11744 kEventPriorityStandard);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11745 if (event)
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11746 ReleaseEvent (event);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11747
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11748 return err;
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 #endif
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
11751
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11752 /* 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
11753 user. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11754 int
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11755 XTread_socket (sd, expected, hold_quit)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11756 int sd, expected;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11757 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
11758 {
88d1b7a60637 (XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit arg.
Kim F. Storm <storm@cua.dk>
parents: 54150
diff changeset
11759 struct input_event inev;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11760 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
11761 #if TARGET_API_MAC_CARBON
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11762 EventRef eventRef;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11763 EventTargetRef toolbox_dispatcher;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11764 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11765 EventRecord er;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11766 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
11767
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11768 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
11769 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11770 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
11771 return -1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11772 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11773
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11774 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
11775 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11776
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11777 /* 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
11778 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
11779
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
11780 ++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
11781
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
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11783 toolbox_dispatcher = GetEventDispatcherTarget ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11784
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
11785 while (
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
11786 #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
11787 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
11788 #endif
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
11789 !ReceiveNextEvent (0, NULL, kEventDurationNoWait,
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11790 kEventRemoveFromQueue, &eventRef))
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11791 #else /* !TARGET_API_MAC_CARBON */
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11792 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
11793 #endif /* !TARGET_API_MAC_CARBON */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11794 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11795 int do_help = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11796 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
11797 unsigned long timestamp;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11798
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11799 EVENT_INIT (inev);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11800 inev.kind = NO_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11801 inev.arg = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
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
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11804 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
11805
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11806 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
11807 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
11808 #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
11809 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
11810 #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
11811
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11812 switch (er.what)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11813 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11814 case mouseDown:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11815 case mouseUp:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11816 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11817 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
11818 ControlPartCode part_code;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11819 int tool_bar_p = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11820
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11821 #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
11822 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
11823
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11824 /* 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
11825 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
11826 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
11827 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
11828 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
11829 if (err != eventNotHandledErr)
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11830 break;
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11831 #endif
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
11832 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
11833
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11834 if (dpyinfo->grabbed && last_mouse_frame
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11835 && FRAME_LIVE_P (last_mouse_frame))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11836 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11837 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
11838 part_code = inContent;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11839 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11840 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11841 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11842 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
11843 if (tip_window && window_ptr == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11844 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11845 HideWindow (tip_window);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11846 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
11847 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11848 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11849
66181
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
11850 if (er.what != mouseDown &&
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
11851 (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
11852 break;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11853
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11854 switch (part_code)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11855 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11856 case inMenuBar:
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11857 f = mac_focus_frame (dpyinfo);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11858 saved_menu_event_location = er.where;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11859 inev.kind = MENU_BAR_ACTIVATE_EVENT;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11860 XSETFRAME (inev.frame_or_window, f);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11861 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11862
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11863 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
11864 if (
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11865 #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
11866 FrontNonFloatingWindow ()
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11867 #else
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11868 FrontWindow ()
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11869 #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
11870 != 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
11871 || (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
11872 != dpyinfo->x_focus_frame))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11873 SelectWindow (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11874 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11875 {
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
11876 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
11877 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
11878 Point mouse_loc;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11879 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11880 ControlKind control_kind;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11881 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11882
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11883 f = mac_window_to_frame (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11884 /* 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
11885 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
11886 - (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
11887 + 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
11888 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
11889 - (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
11890 + 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
11891 #if TARGET_API_MAC_CARBON
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11892 ch = FindControlUnderMouse (mouse_loc, window_ptr,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11893 &control_part_code);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11894 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11895 if (ch)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11896 GetControlKind (ch, &control_kind);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11897 #endif
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11898 #else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11899 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
11900 &ch);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11901 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11902
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
11903 #if TARGET_API_MAC_CARBON
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11904 inev.code = mac_get_mouse_btn (eventRef);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11905 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
11906 #else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11907 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
11908 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
11909 #endif
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11910 XSETINT (inev.x, mouse_loc.h);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11911 XSETINT (inev.y, mouse_loc.v);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11912
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
11913 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
11914 || (ch != 0
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11915 #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
11916 /* 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
11917 a progress indicator is clicked. */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
11918 && 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
11919 #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
11920 #ifdef MAC_OSX
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
11921 && 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
11922 #endif /* MAC_OSX */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11923 #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
11924 ))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11925 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11926 struct scroll_bar *bar;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11927
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11928 if (dpyinfo->grabbed && tracked_scroll_bar)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11929 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11930 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
11931 #ifndef USE_TOOLKIT_SCROLL_BARS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11932 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
11933 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11934 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11935 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11936 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
11937 #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
11938 /* 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
11939 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
11940 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
11941 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
11942 &er, &inev);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11943 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
11944 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
11945 mouse_loc, &inev);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11946 else
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11947 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
11948 #else /* not USE_TOOLKIT_SCROLL_BARS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11949 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
11950 &er, &inev);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11951 if (er.what == mouseDown
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11952 && control_part_code == kControlIndicatorPart)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11953 tracked_scroll_bar = bar;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11954 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11955 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
11956 #endif /* not USE_TOOLKIT_SCROLL_BARS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11957 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11958 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11959 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11960 Lisp_Object window;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11961 int x = mouse_loc.h;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11962 int y = mouse_loc.v;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11963
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11964 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
11965 if (EQ (window, f->tool_bar_window))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11966 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11967 if (er.what == mouseDown)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11968 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
11969 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11970 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
11971 inev.modifiers);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11972 tool_bar_p = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11973 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11974 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11975 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11976 XSETFRAME (inev.frame_or_window, f);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11977 inev.kind = MOUSE_CLICK_EVENT;
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 }
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 if (er.what == mouseDown)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11982 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11983 dpyinfo->grabbed |= (1 << inev.code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11984 last_mouse_frame = f;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11985
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11986 if (!tool_bar_p)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11987 last_tool_bar_item = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11988 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11989 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11990 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11991 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
11992 /* 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
11993 previously pressed, that would be because
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11994 of multi-button emulation. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11995 dpyinfo->grabbed = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11996 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11997 dpyinfo->grabbed &= ~(1 << inev.code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11998 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11999
66181
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
12000 /* 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
12001 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
12002 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
12003 ButtonPress. */
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
12004 if (f != 0)
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
12005 f->mouse_moved = 0;
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
12006
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12007 #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
12008 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
12009 || (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
12010 && (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
12011 #endif
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12012 switch (er.what)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12013 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12014 case mouseDown:
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12015 inev.modifiers |= down_modifier;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12016 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12017 case mouseUp:
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12018 inev.modifiers |= up_modifier;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12019 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12020 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12021 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12022 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12023
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
12024 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
12025 #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
12026 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
12027 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
12028 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
12029 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
12030 break;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
12031 }
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
12032 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
12033 && (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
12034 != errUserWantsToDragWindow))
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
12035 break;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
12036 DragWindow (window_ptr, er.where, NULL);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12037 #else /* not TARGET_API_MAC_CARBON */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12038 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
12039 /* Update the frame parameters. */
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
12040 {
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
12041 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
12042
56271
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
12043 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
12044 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
12045 }
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12046 #endif /* not TARGET_API_MAC_CARBON */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12047 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12048
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12049 case inGoAway:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12050 if (TrackGoAway (window_ptr, er.where))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12051 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12052 inev.kind = DELETE_WINDOW_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12053 XSETFRAME (inev.frame_or_window,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12054 mac_window_to_frame (window_ptr));
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12055 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12056 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12057
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12058 /* window resize handling added --ben */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12059 case inGrow:
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
12060 do_grow_window (window_ptr, &er);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
12061 break;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12062
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12063 /* window zoom handling added --ben */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12064 case inZoomIn:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12065 case inZoomOut:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12066 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
12067 do_zoom_window (window_ptr, part_code);
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
81410
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12070 #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
12071 case inStructure:
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12072 {
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12073 OSStatus err;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12074 HIViewRef ch;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12075
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12076 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
12077 eventRef, &ch);
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12078 /* 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
12079 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
12080 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
12081 }
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12082 break;
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12083 #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
12084
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12085 default:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12086 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12087 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12088 }
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
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12091 #if !TARGET_API_MAC_CARBON
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12092 case updateEvt:
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12093 do_window_update ((WindowRef) er.message);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12094 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
12095 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12096
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12097 case osEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12098 switch ((er.message >> 24) & 0x000000FF)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12099 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12100 case mouseMovedMessage:
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12101 #if !TARGET_API_MAC_CARBON
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12102 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
12103 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
12104 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12105 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
12106 help_echo_string = Qnil;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12107
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12108 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
12109 && 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
12110 f = last_mouse_frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12111 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12112 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
12113
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12114 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
12115 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12116 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
12117 clear_mouse_face (dpyinfo);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12118 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12119
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12120 if (f)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12121 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12122 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
12123 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
12124
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12125 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
12126 - (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
12127 + 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
12128 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
12129 - (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
12130 + 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
12131 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
12132 #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
12133 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
12134 mouse_pos, &inev);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12135 #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
12136 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
12137 mouse_pos.v
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12138 - 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
12139 er.when * (1000 / 60));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12140 #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
12141 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12142 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12143 /* Generate SELECT_WINDOW_EVENTs when needed. */
72736
f6b18b9949d1 * xdisp.c (mouse_autoselect_window): Removed.
Chong Yidong <cyd@stupidchicken.com>
parents: 72706
diff changeset
12144 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
12145 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12146 Lisp_Object window;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12147
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12148 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
12149 mouse_pos.h,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12150 mouse_pos.v,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12151 0, 0, 0, 0);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12152
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12153 /* 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
12154 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
12155 event was not in it. Minibuffer window
78501
1677cf1c2509 Replace `iff' in comments.
Glenn Morris <rgm@gnu.org>
parents: 78260
diff changeset
12156 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
12157 if (WINDOWP (window)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12158 && !EQ (window, last_window)
78986
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12159 && !EQ (window, selected_window)
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12160 /* 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
12161 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
12162 selected frame. */
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12163 && (focus_follows_mouse
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12164 || (EQ (XWINDOW (window)->frame,
c975fef407b4 (XTread_socket): When focus_follows_mouse is nil make
Martin Rudalics <rudalics@gmx.at>
parents: 78968
diff changeset
12165 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
12166 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12167 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
12168 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
12169 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12170
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12171 last_window=window;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12172 }
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
12173 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
12174 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
12175 #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
12176 else
26045b628846 (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81242
diff changeset
12177 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
12178 #endif
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12179 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12180 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12181
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12182 /* If the contents of the global variable
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12183 help_echo_string has changed, generate a
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12184 HELP_EVENT. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12185 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
12186 do_help = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12187 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
12188
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12189 default:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12190 goto OTHER;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12191 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12192 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12193
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12194 case activateEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12195 {
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12196 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
12197 OSErr err;
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12198 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
12199
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12200 if (window_ptr == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12201 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12202 HideWindow (tip_window);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12203 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12204 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12205
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
12206 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
12207 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
12208
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12209 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
12210
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12211 if ((er.modifiers & activeFlag) != 0)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12212 {
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
12213 /* 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
12214 Point mouse_loc;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12215
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12216 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
12217 if (err == noErr)
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12218 ActivateControl (root_control);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12219
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12220 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
12221
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12222 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
12223 - (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
12224 + 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
12225 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
12226 - (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
12227 + 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
12228 /* 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
12229 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
12230 note_mouse_movement (f, &mouse_loc);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12231 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12232 else
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 deactivated */
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12235 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
12236 if (err == noErr)
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12237 DeactivateControl (root_control);
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12238
76331
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
12239 #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
12240 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
12241 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12242 struct input_event event;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12243
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12244 EVENT_INIT (event);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12245 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
12246 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
12247 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
12248 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
12249 event.timestamp = timestamp;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12250 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
12251 count++;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12252 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12253 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12254 #endif
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
12255 dpyinfo->grabbed = 0;
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
12256
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
12257 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
12258
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12259 if (f == dpyinfo->mouse_face_mouse_frame)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12260 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12261 /* 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
12262 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
12263 frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12264 clear_mouse_face (dpyinfo);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12265 dpyinfo->mouse_face_mouse_frame = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12266 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12267
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12268 /* 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
12269 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
12270 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
12271 mouse leaves the frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12272 if (any_help_event_p)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12273 do_help = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12274 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12275 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12276 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12277
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12278 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
12279 case keyUp:
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12280 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
12281 ObscureCursor ();
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12282
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12283 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
12284 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
12285
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12286 /* 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
12287 highlighting. */
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12288 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
12289 && !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
12290 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12291 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
12292 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
12293 }
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12294
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12295 {
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
12296 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
12297
82336
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12298 #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
12299 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
12300 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
12301 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
12302 #endif
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
12303 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
12304
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12305 #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
12306 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
12307 & ~(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
12308 & ~(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
12309 goto OTHER;
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12310 else
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12311 #endif
0ad15cda2bce (frame_highlight, frame_unhighlight): Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 82140
diff changeset
12312 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
12313 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
12314 (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
12315 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
12316 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12317 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12318
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12319 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
12320 AEProcessAppleEvent (&er);
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
12321 break;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
12322
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12323 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
12324 OTHER:
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12325 #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
12326 {
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12327 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
12328
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12329 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
12330 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
12331 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
12332 }
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12333 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12334 break;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12335 }
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12336 #if TARGET_API_MAC_CARBON
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12337 ReleaseEvent (eventRef);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
12338 #endif
55851
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 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
12341 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
12342 inev.timestamp = timestamp;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12343 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
12344 count++;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12345 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12346
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12347 if (do_help
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12348 && !(hold_quit && hold_quit->kind != NO_EVENT))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12349 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12350 Lisp_Object frame;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12351
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12352 if (f)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12353 XSETFRAME (frame, f);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12354 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12355 frame = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12356
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12357 if (do_help > 0)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
12358 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12359 any_help_event_p = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12360 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
12361 help_echo_object, help_echo_pos);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
12362 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12363 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12364 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12365 help_echo_string = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12366 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
12367 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12368 count++;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12369 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12370 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12371
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12372 /* 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
12373 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
12374 /* ??? 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
12375 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
12376 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12377 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
12378 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
12379 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12380
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12381 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
12382 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12383 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
12384 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
12385 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12386
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12387 #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
12388 /* 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
12389 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
12390 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
12391 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
12392 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12393 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
12394
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12395 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
12396 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12397 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
12398
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12399 /* 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
12400 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
12401 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
12402 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
12403
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12404 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
12405 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
12406 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12407 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
12408 #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
12409
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
12410 --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
12411 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12412 return count;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12413 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12414
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12415
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12416 /* 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
12417 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
12418 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
12419 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
12420 #ifdef __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12421 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12422 __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
12423 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12424 #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
12425 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12426
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12427 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12428 __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
12429 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12430 #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
12431 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12432 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12433
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12434 #ifdef MAC_OS8
47634
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
12435 void
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
12436 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
12437 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12438 Lisp_Object frame;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12439 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
12440
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12441 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
12442
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12443 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
12444 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
12445 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
12446 bzero (f->output_data.mac, sizeof (struct mac_output));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
12447
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12448 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
12449
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
12450 FRAME_COLS (f) = 96;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
12451 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
12452
53722
4f64eb1ea148 Move setting of scroll bars from make_mac_frame to
Steven Tamm <steventamm@mac.com>
parents: 53651
diff changeset
12453 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
12454 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
12455
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12456 FRAME_DESIRED_CURSOR (f) = FILLED_BOX_CURSOR;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12457
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12458 f->output_data.mac->cursor_pixel = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12459 f->output_data.mac->border_pixel = 0x00ff00;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12460 f->output_data.mac->mouse_pixel = 0xff00ff;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12461 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
12462
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
12463 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
12464 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
12465 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
12466 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
12467 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
12468 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
12469
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12470 FRAME_FONTSET (f) = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12471 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
12472 f->left_pos = 8;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12473 f->top_pos = 32;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12474 f->border_width = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12475
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12476 f->internal_border_width = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12477
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12478 f->auto_raise = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12479 f->auto_lower = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12480
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12481 f->new_text_cols = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12482 f->new_text_lines = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
12483
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12484 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
12485 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
12486 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
12487
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12488 BLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12489
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12490 if (!(FRAME_MAC_WINDOW (f) =
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12491 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
12492 (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
12493 abort ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12494 /* 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
12495 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
12496
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12497 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
12498
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12499 x_make_gc (f);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
12500
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12501 /* 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
12502 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
12503
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12504 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
12505 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
12506 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
12507 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
12508 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
12509 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
12510 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
12511 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
12512 build_string ("white")), Qnil));
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12513 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12514 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12515
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12516
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12517 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12518 Initialization
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
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12521 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
12522
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
12523 static XrmDatabase
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12524 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
12525 const char *xrm_option;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12526 {
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
12527 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
12528
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
12529 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
12530 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
12531 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
12532
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
12533 return database;
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
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12536 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
12537 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
12538 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
12539 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
12540 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
12541 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12542 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
12543 struct terminal *terminal;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12544
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12545 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
12546
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12547 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
12548 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12549 mac_initialize ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12550 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
12551 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12552
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12553 if (x_display_list)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12554 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
12555
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12556 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
12557 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
12558
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12559 terminal = mac_create_terminal (dpyinfo);
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12560
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12561 /* 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
12562 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
12563 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
12564 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
12565
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12566 #ifdef MAC_OSX
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12567 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
12568 = (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
12569 + SCHARS (Vsystem_name)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12570 + 2);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12571 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
12572 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
12573 #else
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12574 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
12575 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
12576 #endif
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12577
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12578 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
12579 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
12580 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
12581
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12582 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
12583
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12584 dpyinfo->grabbed = 0;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12585 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
12586 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
12587
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12588 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
12589 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
12590 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
12591 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
12592 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
12593 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
12594
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
12595 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
12596
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12597 /* Put this display on the chain. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12598 dpyinfo->next = x_display_list;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12599 x_display_list = dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12600
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12601 /* 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
12602 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
12603 Fcons (Qnil, dpyinfo->xrdb)),
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12604 x_display_name_list);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12605 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
12606
86252
2da228125cce (mac_term_init): Call add_keyboard_wait_descriptor.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86251
diff changeset
12607 /* FIXME: Untested.
2da228125cce (mac_term_init): Call add_keyboard_wait_descriptor.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86251
diff changeset
12608 Add the default keyboard. */
2da228125cce (mac_term_init): Call add_keyboard_wait_descriptor.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86251
diff changeset
12609 add_keyboard_wait_descriptor (0);
2da228125cce (mac_term_init): Call add_keyboard_wait_descriptor.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86251
diff changeset
12610
84542
cd518430d431 (mac_initialize): Don't call mac_init_fringe here.
Jason Rumney <jasonr@gnu.org>
parents: 83676
diff changeset
12611 #if USE_CG_DRAWING
cd518430d431 (mac_initialize): Don't call mac_init_fringe here.
Jason Rumney <jasonr@gnu.org>
parents: 83676
diff changeset
12612 mac_init_fringe (terminal->rif);
cd518430d431 (mac_initialize): Don't call mac_init_fringe here.
Jason Rumney <jasonr@gnu.org>
parents: 83676
diff changeset
12613 #endif
cd518430d431 (mac_initialize): Don't call mac_init_fringe here.
Jason Rumney <jasonr@gnu.org>
parents: 83676
diff changeset
12614
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12615 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
12616
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12617 return dpyinfo;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12618 }
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12619
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12620 /* 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
12621
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12622 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12623 x_delete_display (dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12624 struct mac_display_info *dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12625 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12626 int i;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12627
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12628 /* 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
12629 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
12630 if (! NILP (x_display_name_list)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12631 && 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
12632 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
12633 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12634 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12635 Lisp_Object tail;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12636
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12637 tail = x_display_name_list;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12638 while (CONSP (tail) && CONSP (XCDR (tail)))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12639 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12640 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
12641 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12642 XSETCDR (tail, XCDR (XCDR (tail)));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12643 break;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12644 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12645 tail = XCDR (tail);
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 }
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 if (x_display_list == dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12650 x_display_list = dpyinfo->next;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12651 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12652 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12653 struct x_display_info *tail;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12654
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12655 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
12656 if (tail->next == dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12657 tail->next = tail->next->next;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12658 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12659
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12660 /* 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
12661 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
12662 if (dpyinfo->font_table[i].name)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12663 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12664 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
12665 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
12666 xfree (dpyinfo->font_table[i].name);
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
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12669 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
12670 {
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12671 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
12672 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
12673 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
12674 }
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
12675 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
12676 xfree (dpyinfo->mac_id_name);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12677
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12678 if (x_display_list == 0)
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 mac_clear_font_name_table ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12681 bzero (dpyinfo, sizeof (*dpyinfo));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12682 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12683 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12684
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12685
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12686 static void
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12687 init_menu_bar ()
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12688 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12689 #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
12690 OSStatus err;
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12691 MenuRef menu;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12692 MenuItemIndex menu_index;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12693
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12694 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
12695 &menu, &menu_index);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12696 if (err == noErr)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12697 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
12698 EnableMenuCommand (NULL, kHICommandPreferences);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12699 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
12700 &menu, &menu_index);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12701 if (err == noErr)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12702 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12703 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
12704 InsertMenuItemTextWithCFString (menu, NULL,
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12705 0, kMenuItemAttrSeparator, 0);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12706 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
12707 0, 0, kHICommandAbout);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12708 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12709 #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
12710 #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
12711 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
12712 #endif
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12713 #endif
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
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12716 #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
12717 static void
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12718 init_tsm ()
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12719 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12720 #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
12721 static InterfaceTypeList types = {kUnicodeDocument};
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12722 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12723 static InterfaceTypeList types = {kTextService};
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12724 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12725
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12726 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
12727 &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
12728 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12729 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12730
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12731 /* 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
12732
50360
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
12733 extern frame_parm_handler mac_frame_parm_handlers[];
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
12734
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12735 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
12736 {
50360
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
12737 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
12738 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
12739 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
12740 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
12741 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
12742 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
12743 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
12744 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
12745 x_update_window_end,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12746 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
12747 x_flush,
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
12748 #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
12749 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
12750 #else
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
12751 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
12752 #endif
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12753 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
12754 x_get_glyph_overhangs,
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
12755 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
12756 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
12757 #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
12758 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
12759 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
12760 #else
53885
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
12761 0, /* define_fringe_bitmap */
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
12762 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
12763 #endif
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
12764 mac_per_char_metric,
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
12765 mac_encode_char,
59718
d4cb255b034d * dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents: 59655
diff changeset
12766 mac_compute_glyph_string_overhangs,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12767 x_draw_glyph_string,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12768 mac_define_frame_cursor,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12769 mac_clear_frame_area,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12770 mac_draw_window_cursor,
50344
31cf5b909af7 (x_redisplay_interface): Add missing entry for
Andreas Schwab <schwab@suse.de>
parents: 50247
diff changeset
12771 mac_draw_vertical_window_border,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
12772 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
12773 };
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12774
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12775 static struct terminal *
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12776 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
12777 {
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12778 struct terminal *terminal;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12779
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12780 terminal = create_terminal ();
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12781
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12782 terminal->type = output_mac;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12783 terminal->display_info.mac = dpyinfo;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12784 dpyinfo->terminal = terminal;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12785
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12786 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
12787 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
12788 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
12789 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
12790 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
12791 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
12792 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
12793 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
12794 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
12795 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
12796 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
12797 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
12798 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
12799 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
12800 /* 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
12801 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
12802 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
12803 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
12804 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
12805 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
12806 /* 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
12807
28201311b297 * term.c (init_tty): Use terminal specific mouse_position_hook.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83629
diff changeset
12808 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
12809 #if 0
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
12810 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
12811 TTY_CHAR_INS_DEL_OK (CURTTY ()) = 1;
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
12812 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
12813 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
12814 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
12815 scrolls off the
4250e7e26247 Add a level of indirection to terminal characteristics.
Karoly Lorentey <lorentey@elte.hu>
parents: 52977
diff changeset
12816 bottom */
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12817 #else
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12818 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
12819 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
12820 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
12821 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
12822 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
12823 off the bottom. */
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12824
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12825 #endif
84542
cd518430d431 (mac_initialize): Don't call mac_init_fringe here.
Jason Rumney <jasonr@gnu.org>
parents: 83676
diff changeset
12826
85614
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12827 /* 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
12828 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
12829 a keyboard object. */
9f3a25157e4f Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85330
diff changeset
12830 /* 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
12831 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
12832 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
12833 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
12834 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
12835 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
12836 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
12837 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
12838 /* 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
12839 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
12840 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
12841 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
12842 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
12843 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
12844
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12845 return terminal;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12846 }
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12847
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12848 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
12849 mac_initialize ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12850 {
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12851
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12852 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
12853
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12854 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
12855 any_help_event_p = 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
12856
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12857 /* 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
12858 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
12859
57425
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
12860 BLOCK_INPUT;
46121
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
12861
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
12862 #if TARGET_API_MAC_CARBON
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
12863
81242
95935a0c1560 (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 81158
diff changeset
12864 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
12865
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12866 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
12867
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12868 #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
12869 init_tsm ();
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12870 #endif
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
12871
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
12872 #ifdef MAC_OSX
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
12873 init_coercion_handler ();
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
12874
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
12875 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
12876
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
12877 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
12878
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
12879 if (!inhibit_window_system)
75834
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
12880 {
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
12881 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
12882
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
12883 SetFrontProcess (&psn);
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
12884 }
46121
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
12885 #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
12886 #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
12887
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
12888 #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
12889 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
12890 #endif
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
12891
57425
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
12892 UNBLOCK_INPUT;
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83561
diff changeset
12893
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12894 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12895
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12896
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12897 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12898 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
12899 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12900 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12901 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
12902 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
12903 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12904
67101
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
12905 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
12906 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
12907 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
12908 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
12909 Qsuper = intern ("super"); staticpro (&Qsuper);
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
12910 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
12911 staticpro (&Qmodifier_value);
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
12912
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
12913 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
12914 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
12915 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
12916 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
12917 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
12918
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
12919 #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
12920 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
12921 #ifdef MAC_OSX
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
12922 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
12923 staticpro (&Qtoolbar_switch_mode);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
12924 #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
12925 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
12926 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
12927 #endif
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
12928
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
12929 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
12930 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
12931 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
12932 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12933 #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
12934 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
12935 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
12936 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
12937 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
12938 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
12939 #endif
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
12940 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
12941
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12942 #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
12943 Fprovide (intern ("mac-carbon"), Qnil);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
12944 #endif
49015
c49640262de0 * macterm.c (syms_of_macterm): Provide the feature "mac-carbon" to
Steven Tamm <steventamm@mac.com>
parents: 49003
diff changeset
12945
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
12946 staticpro (&Qreverse);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
12947 Qreverse = intern ("reverse");
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
12948
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12949 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
12950 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
12951
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12952 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
12953 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
12954
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
12955 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
12956 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
12957
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
12958 #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
12959 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
12960 atsu_font_id_hash = Qnil;
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12961
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12962 staticpro (&fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12963 fm_style_face_attributes_alist = Qnil;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12964 #endif
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12965
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12966 #if USE_MAC_TSM
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12967 staticpro (&saved_ts_script_language_on_focus);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12968 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
12969 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
12970
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
12971 /* 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
12972 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
12973 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
12974 &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
12975 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
12976 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
12977 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
12978 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
12979
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
12980 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
12981 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
12982
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
12983 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
12984 &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
12985 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
12986 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
12987 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
12988 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
12989 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
12990
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12991 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
12992 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
12993 #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
12994 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
12995 #else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12996 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
12997 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12998
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12999 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
13000 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
13001
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
13002 /* 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
13003
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
13004 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
13005 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
13006 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
13007 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
13008 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
13009
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
13010 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
13011 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
13012 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
13013 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
13014 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
13015 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
13016 Vmac_option_modifier = Qnil;
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
13017
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
13018 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
13019 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
13020 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
13021 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
13022 Vmac_command_modifier = Qmeta;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
13023
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
13024 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
13025 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
13026 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
13027 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
13028 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
13029 Vmac_function_modifier = Qnil;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
13030
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
13031 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
13032 &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
13033 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
13034 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
13035 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
13036 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
13037 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
13038 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
13039 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
13040 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
13041 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
13042 Vmac_emulate_three_button_mouse = Qnil;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
13043
81158
c6b1c2b2e312 Replace MenuHandle and GetMenuHandle with MenuRef and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77907
diff changeset
13044 #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
13045 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
13046 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
13047 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
13048 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
13049 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
13050
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
13051 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
13052 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
13053 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
13054
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
13055 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
13056 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
13057 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
13058
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
13059 #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
13060
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
13061 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
13062 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
13063 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
13064 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
13065 #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
13066 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
13067 #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
13068 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
13069 #endif
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
13070
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
13071 /* 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
13072 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
13073 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
13074 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
13075 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
13076 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
13077
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
13078 (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
13079
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
13080 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
13081 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
13082 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
13083 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
13084 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
13085 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
13086
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
13087 #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
13088 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
13089 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
13090 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
13091
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
13092 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
13093 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
13094 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
13095 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
13096 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
13097 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
13098 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
13099 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
13100 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
13101 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
13102
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
13103 /* arch-tag: f2259165-4454-4c04-a029-a133c8af7b5b
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
13104 (do not change this comment) */