annotate src/macterm.c @ 90876:ea615c783ad5

* xterm.c (x_draw_glyph_string_foreground) [USE_FONT_BACKEND]: Remove redundant loop and allocation.
author Jason Rumney <jasonr@gnu.org>
date Thu, 31 May 2007 01:31:39 +0000
parents 648e6c714c7d
children e9f94688a064
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9 the Free Software Foundation; either version 2, or (at your option)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10 any later version.
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
15 GNU General Public License for more details.
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
16
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
18 along with GNU Emacs; see the file COPYING. If not, write to
64084
a8fa7c632ee4 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 63794
diff changeset
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
a8fa7c632ee4 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 63794
diff changeset
20 Boston, MA 02110-1301, USA. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
21
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
22 /* Contributed by Andrew Choi (akochoi@mac.com). */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
23
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
24 #include <config.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
25 #include <signal.h>
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
26
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
27 #include <stdio.h>
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
28
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
29 #include "lisp.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
30 #include "blockinput.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
31
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
32 #include "macterm.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
33
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
34 #ifndef MAC_OSX
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
35 #include <alloca.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
36 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
37
60364
de784812b4d4 [TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 59899
diff changeset
38 #if TARGET_API_MAC_CARBON
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
39 /* USE_CARBON_EVENTS determines if the Carbon Event Manager is used to
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
40 obtain events from the event queue. If set to 0, WaitNextEvent is
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
41 used instead. */
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
42 #define USE_CARBON_EVENTS 1
60364
de784812b4d4 [TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 59899
diff changeset
43 #else /* not TARGET_API_MAC_CARBON */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
44 #include <Quickdraw.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
45 #include <ToolUtils.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
46 #include <Sound.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
47 #include <Events.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
48 #include <Script.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
49 #include <Resources.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
50 #include <Fonts.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
51 #include <TextUtils.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
52 #include <LowMem.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
53 #include <Controls.h>
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
54 #include <Windows.h>
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
55 #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
56 #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
57 #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
58 #endif
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 #if __profile__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
61 #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
62 #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
63 #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
64
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
65 #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
66 #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
67
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
68 #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
69 #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
70 #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
71 #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
72
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
73 #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
74 #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
75 #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
76 #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
77 #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
78 #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
79 #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
80 #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
81 #include "disptab.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
82 #include "buffer.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
83 #include "window.h"
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
84 #include "keyboard.h"
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
85 #include "intervals.h"
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
86 #include "atimer.h"
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
87 #include "keymap.h"
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
88 #include "character.h"
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
89 #include "ccl.h"
66841
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
90
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
91
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
92
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
93 /* Non-nil means Emacs uses toolkit scroll bars. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
94
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
95 Lisp_Object Vx_toolkit_scroll_bars;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
96
67666
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
97 /* If non-zero, the text will be rendered using Core Graphics text
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
98 rendering which may anti-alias the text. */
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
99 int mac_use_core_graphics;
59577
a4a748516aa7 * macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents: 59575
diff changeset
100
a4a748516aa7 * macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents: 59575
diff changeset
101
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
102 /* Non-zero means that a HELP_EVENT has been generated since Emacs
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
103 start. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
104
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
105 static int any_help_event_p;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
106
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
107 /* Last window where we saw the mouse. Used by mouse-autoselect-window. */
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
108 static Lisp_Object last_window;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
109
67666
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
110 /* Non-zero means make use of UNDERLINE_POSITION font properties.
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
111 (Not yet supported.) */
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
112 int x_use_underline_position_properties;
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
113
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
114 /* 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
115
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
116 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
117
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
118 /* This is a 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
119 use. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
120
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
121 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
122
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
123 /* 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
124 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
125 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
126 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
127 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
128 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
129 display. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
130
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
131 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
132
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
133 /* This is 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
134 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
135
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
136 /* 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
137 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
138 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
139 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
140
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
141 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
142
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
143 /* 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
144
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
145 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
146
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
147 /* Mouse movement.
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 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
150 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
151 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
152 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
153
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
154 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
155
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
156 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
157 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
158 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
159 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
160 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
161 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
162 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
163 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
164 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
165 is off. */
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 /* 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
168
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
169 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
170 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
171
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
172 /* 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
173
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
174 If the last X motion event 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
175 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
176 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
177
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
178 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
179 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
180 event. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
181
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
182 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
183
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
184 /* 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
185 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
186 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
187 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
188 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
189 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
190
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
191 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
192
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
193 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
194
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
195 /* 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
196 events. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
197
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
198 #ifdef __STDC__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
199 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
200 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
201 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
202 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
203
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
204 extern 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
205
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
206 extern Lisp_Object Qeql;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
207
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
208 /* 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
209
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
210 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
211
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
212 /* 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
213
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
214 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
215
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
216 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
217
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
218 #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
219 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
220 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
221
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
222 #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
223
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
224 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
225 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
226 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
227 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
228 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
229 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
230 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
231 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
232 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
233 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
234 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
235 void x_wm_set_icon_pixmap P_ ((struct frame *, int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
236 void mac_initialize P_ ((void));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
237 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
238 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
239 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
240 static void XTframe_up_to_date P_ ((struct frame *));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
241 static void XTset_terminal_modes P_ ((void));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
242 static void XTreset_terminal_modes P_ ((void));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
243 static void x_clear_frame P_ ((void));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
244 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
245 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
246 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
247 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
248 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
249 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
250 const EventRecord *,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
251 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
252 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
253 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
254 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
255 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
256 enum text_cursor_kinds));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
257
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
258 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
259 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
260 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
261 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
262 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
263 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
264 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
265 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
266 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
267
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
268 static int is_emacs_window P_ ((WindowPtr));
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
269 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
270 static void XSetFont P_ ((Display *, GC, XFontStruct *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
271
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
272 #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
273 #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
274 #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
275 #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
276
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
277 #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
278 CGContextSetRGBFillColor (context, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
279 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
280 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
281 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
282 #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
283 #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
284 #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
285 do { \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
286 if (CGColorGetTypeID != NULL) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
287 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
288 else \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
289 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
290 } while (0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
291 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
292 #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
293 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
294 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
295 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
296 #define CG_SET_FILL_COLOR_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
297 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
298 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
299 #define CG_SET_FILL_COLOR_WITH_GC_FOREGROUND(context, gc) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
300 CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR (context, (gc)->xgcv.foreground, \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
301 (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
302 #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
303 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
304 (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
305
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
306
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
307 #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
308 CGContextSetRGBStrokeColor (context, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
309 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
310 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
311 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
312 #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
313 #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
314 #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
315 do { \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
316 if (CGColorGetTypeID != NULL) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
317 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
318 else \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
319 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
320 } while (0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
321 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
322 #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
323 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
324 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
325 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
326 #define CG_SET_STROKE_COLOR_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
327 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
328 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
329 #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
330 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
331 (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
332
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
333 #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
334 #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
335
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
336 /* 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
337
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
338 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
339 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
340
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
341 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
342 #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
343 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
344 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
345
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
346 static void
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
347 init_cg_color ()
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
348 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
349 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
350 #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
351 #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
352 /* 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
353 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
354 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
355 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
356 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
357 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
358
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
359 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
360 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
361 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
362 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
363
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
364 static CGContextRef
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
365 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
366 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
367 GC gc;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
368 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
369 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
370
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
371 if (!context)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
372 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
373 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
374 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
375 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
376
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
377 CGContextSaveGState (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
378 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
379 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
380 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
381 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
382
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
383 return context;
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
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
386 static void
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
387 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
388 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
389 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
390 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
391 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
392
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
393 void
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
394 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
395 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
396 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
397 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
398 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
399 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
400 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
401 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
402 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
403 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
404 else
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
405 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
406 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
407
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
408 if (context)
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 CGContextSynchronize (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
411 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
412 &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
413 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
414 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
415 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
416 #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
417
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
418 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
419
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
420 static void
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
421 mac_begin_clip (gc)
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
422 GC gc;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
423 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
424 static RgnHandle new_region = NULL;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
425
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
426 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
427 saved_port_clip_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
428 if (new_region == NULL)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
429 new_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
430
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
431 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
432 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
433 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
434 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
435 SetClip (new_region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
436 }
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 static void
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
440 mac_end_clip (gc)
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
441 GC gc;
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
442 {
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
443 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
444 SetClip (saved_port_clip_region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
445 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
446
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
447
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
448 /* 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
449
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
450 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
451 XFreePixmap (display, pixmap)
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
452 Display *display; /* not used */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
453 Pixmap pixmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
454 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
455 DisposeGWorld (pixmap);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
456 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
457
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
458
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
459 /* 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
460
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
461 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
462 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
463 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
464 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
465 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
466 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
467 #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
468 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
469 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
470
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
471 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
472 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
473 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
474 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
475
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
476 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
477 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
478 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
479 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
480 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
481 CGContextClosePath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
482 CGContextStrokePath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
483 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
484 #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
485 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
486 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
487 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
488 y1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
489 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
490 y2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
491 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
492 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
493 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
494 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
495 x1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
496 else
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
497 x2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
498 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
499
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
500 SetPortWindowPort (FRAME_MAC_WINDOW (f));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
501
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
502 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
503
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
504 mac_begin_clip (gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
505 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
506 LineTo (x2, y2);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
507 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
508 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
509 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
510
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
511 /* 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
512
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
513 void
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
514 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
515 Display *display;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
516 Pixmap p;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
517 GC gc;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
518 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
519 {
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
520 CGrafPtr old_port;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
521 GDHandle old_gdh;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
522
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
523 if (x1 == x2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
524 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
525 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
526 y1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
527 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
528 y2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
529 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
530 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
531 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
532 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
533 x1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
534 else
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
535 x2--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
536 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
537
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
538 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
539 SetGWorld (p, NULL);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
540
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
541 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
542
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
543 LockPixels (GetGWorldPixMap (p));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
544 MoveTo (x1, y1);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
545 LineTo (x2, y2);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
546 UnlockPixels (GetGWorldPixMap (p));
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
547
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
548 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
549 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
550
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
551
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
552 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
553 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
554 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
555 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
556 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
557 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
558 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
559 #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
560 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
561
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
562 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
563 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (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
564 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
565 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
566 #else
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
567 Rect r;
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
568
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
569 SetPortWindowPort (FRAME_MAC_WINDOW (f));
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
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 RGBBackColor (GC_BACK_COLOR (gc));
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
572 SetRect (&r, x, y, x + width, y + height);
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
573
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
574 mac_begin_clip (gc);
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
575 EraseRect (&r);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
576 mac_end_clip (gc);
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
577
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
578 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
579 #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
580 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
581
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
582
44890
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 XClearArea. */
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 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_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
587 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
588 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
589 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
590 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
591 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
592 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
593
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
594 /* 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
595
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
596 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
597 mac_clear_window (f)
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
598 struct frame *f;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
599 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
600 #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
601 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
602 GC gc = FRAME_NORMAL_GC (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
603
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
604 context = mac_begin_cg_clip (f, NULL);
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
605 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (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
606 CGContextFillRect (context, CGRectMake (0, 0, FRAME_PIXEL_WIDTH (f),
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
607 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
608 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
609 #else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
610 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
611
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
612 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
613
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
614 #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
615 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
616 Rect r;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
617
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
618 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
619 EraseRect (&r);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
620 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
621 #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
622 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
623 #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
624 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
625 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
626
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
627
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
628 /* 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
629
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
630 #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
631 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
632 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
633 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
634 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
635 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
636 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
637 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
638 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
639 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
640 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
641 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
642 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
643 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
644
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
645 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
646 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
647 {
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
648 CG_SET_FILL_COLOR_WITH_GC_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
649 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
650 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
651 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
652 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
653 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
654 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
655 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
656 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
657 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
658 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
659 + 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
660 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
661 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
662 image);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
663 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
664 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
665
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
666 #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
667
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
668 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
669 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
670 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
671 GC gc;
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
672 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
673 unsigned short *bits;
53899
e45e1fbbe83e (mac_draw_bitmap): Add overlay_p arg.
Kim F. Storm <storm@cua.dk>
parents: 53885
diff changeset
674 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
675 {
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
676 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
677 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
678
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
679 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
680 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
681 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
682
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
683 SetPortWindowPort (FRAME_MAC_WINDOW (f));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
684
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
685 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
686 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
687 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
688
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
689 mac_begin_clip (gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
690 #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
691 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
692 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
693
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
694 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
695 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
696 CopyBits (&bitmap, GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
697 &(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
698 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
699 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
700 #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
701 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
702 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
703 #endif /* not TARGET_API_MAC_CARBON */
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
704 mac_end_clip (gc);
60623
5a3fa411c713 (activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60611
diff changeset
705
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
706 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
707 }
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
708 #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
709
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
710
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
711 /* 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
712
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
713 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
714 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
715 BitMap *bitmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
716 char *bits;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
717 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
718 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
719 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
720 = { 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
721 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
722 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
723 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
724 int i, j, w1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
725 char *p;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
726
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
727 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
728 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
729 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
730 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
731 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
732 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
733 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
734 for (j = 0; j < w1; j++)
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
735 {
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
736 /* 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
737 unsigned char c = *bits++;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
738 *p++ = (unsigned char)((swap_nibble[c & 0xf] << 4)
81083
223bb8e66f74 * xfaces.c (syms_of_xfaces): Delete stray semicolon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 77795
diff changeset
739 | (swap_nibble[(c>>4) & 0xf]));
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
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 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
742
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
743 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
744 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
745
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
746
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
747 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
748 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
749 BitMap *bitmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
750 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
751 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
752 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
753
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 Pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
756 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
757 Display *display; /* not used */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
758 WindowPtr w;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
759 unsigned int width, height;
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
760 unsigned int depth;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
761 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
762 Pixmap pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
763 Rect r;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
764 QDErr err;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
765
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
766 SetPortWindowPort (w);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
767
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
768 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
769 #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
770 if (depth == 1)
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
771 #endif
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
772 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
773 #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
774 else
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
775 /* 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
776 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
777 #endif
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
778 if (err != noErr)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
779 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
780 return pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
781 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
782
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
783
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
784 Pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
785 XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
786 Display *display; /* not used */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
787 WindowPtr w;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
788 char *data;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
789 unsigned int width, height;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
790 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
791 unsigned int depth;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
792 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
793 Pixmap pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
794 BitMap bitmap;
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
795 CGrafPtr old_port;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
796 GDHandle old_gdh;
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
797 static GC gc = NULL; /* not reentrant */
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
798
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
799 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
800 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
801
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
802 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
803 if (pixmap == NULL)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
804 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
805
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
806 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
807 SetGWorld (pixmap, NULL);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
808 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
809 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
810 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
811 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
812 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
813 LockPixels (GetGWorldPixMap (pixmap));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
814 #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
815 CopyBits (&bitmap, GetPortBitMapForCopyBits (pixmap),
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
816 &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
817 #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
818 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
819 &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
820 #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
821 UnlockPixels (GetGWorldPixMap (pixmap));
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
822 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
823 mac_free_bitmap (&bitmap);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
824
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
825 return pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
826 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
827
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
828
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
829 /* 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
830
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
831 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
832 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
833 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
834 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
835 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
836 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
837 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
838 #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
839 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
840
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
841 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
842 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
843 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
844 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
845 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
846 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
847
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
848 SetPortWindowPort (FRAME_MAC_WINDOW (f));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
849
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
850 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
851 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
852
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
853 mac_begin_clip (gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
854 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
855 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
856 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
857 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
858
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
859
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
860 /* 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
861
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
862 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
863 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
864 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
865 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
866 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
867 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
868 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
869 #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
870 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
871
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
872 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
873 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
874 CGContextStrokeRect (context,
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
875 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
876 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
877 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
878 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
879
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
880 SetPortWindowPort (FRAME_MAC_WINDOW (f));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
881
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
882 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
883 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
884
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
885 mac_begin_clip (gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
886 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
887 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
888 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
889 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
891
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
892 #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
893 static OSStatus
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
894 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
895 ConstUniCharArrayPtr text;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
896 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
897 ATSUStyle style;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
898 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
899 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
900 OSStatus err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
901 static ATSUTextLayout saved_text_layout = NULL; /* not reentrant */
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
902
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
903 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
904 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
905 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
906 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
907 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
908 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
909 #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
910 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
911 | kATSLineUseQDRendering
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
912 #else
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
913 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
914 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
915 ;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
916 static const 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
917
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
918 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
919 kATSUFromTextBeginning,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
920 kATSUToTextEnd,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
921 text_length,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
922 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
923 &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
924 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
925 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
926 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
927 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
928 /* XXX: Should we do this? */
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
929 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
930 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
931 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
932 else
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
933 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
934 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
935 kATSUFromTextBeginning, kATSUToTextEnd);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
936 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
937 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
938 kATSUFromTextBeginning,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
939 kATSUToTextEnd,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
940 text_length);
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
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
943 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
944 *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
945 return err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
946 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
947 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
948
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
949
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
950 static void
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
951 mac_invert_rectangle (f, x, y, width, height)
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
952 struct frame *f;
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
953 int x, y;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
954 unsigned int width, height;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
955 {
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
956 Rect r;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
957
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
958 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
959 mac_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
960 #endif
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
961 SetPortWindowPort (FRAME_MAC_WINDOW (f));
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
962
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
963 SetRect (&r, x, y, x + width, y + height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
964
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
965 InvertRect (&r);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
966 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
967
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
968
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
969 static 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
970 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
971 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
972 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
973 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
974 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
975 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
976 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
977 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
978 SetPortWindowPort (FRAME_MAC_WINDOW (f));
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
979
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
980 #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
981 if (GC_FONT (gc)->mac_style)
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
982 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
983 OSStatus err;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
984 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
985
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
986 xassert (bytes_per_char == 2);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
987
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
988 #ifndef WORDS_BIG_ENDIAN
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
989 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
990 int i;
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
991 UniChar *text = (UniChar *)buf;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
992
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
993 for (i = 0; i < nchars; i++)
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
994 text[i] = EndianU16_BtoN (text[i]);
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
995 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
996 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
997 err = atsu_get_text_layout_with_text_ptr ((ConstUniCharArrayPtr)buf,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
998 nchars,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
999 GC_FONT (gc)->mac_style,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1000 &text_layout);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1001 if (err != noErr)
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1002 return;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1003 #ifdef MAC_OSX
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1004 if (!mac_use_core_graphics)
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1005 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1006 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1007 #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
1008 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
1009 #endif
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1010 mac_begin_clip (gc);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1011 RGBForeColor (GC_FORE_COLOR (gc));
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1012 if (bg_width)
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1013 {
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1014 Rect r;
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1015
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1016 SetRect (&r, x, y - FONT_BASE (GC_FONT (gc)),
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1017 x + bg_width, y + FONT_DESCENT (GC_FONT (gc)));
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1018 RGBBackColor (GC_BACK_COLOR (gc));
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1019 EraseRect (&r);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1020 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1021 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1022 MoveTo (x, y);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1023 ATSUDrawText (text_layout,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1024 kATSUFromTextBeginning, kATSUToTextEnd,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1025 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
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
1026 if (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
1027 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1028 MoveTo (x + 1, y);
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1029 ATSUDrawText (text_layout,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1030 kATSUFromTextBeginning, kATSUToTextEnd,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1031 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1032 }
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1033 mac_end_clip (gc);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1034 #ifdef MAC_OSX
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1035 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1036 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1037 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1038 CGrafPtr port;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
1039 static CGContextRef 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
1040 float port_height = FRAME_PIXEL_HEIGHT (f);
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
1041 static const ATSUAttributeTag tags[] = {kATSUCGContextTag};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
1042 static const ByteCount sizes[] = {sizeof (CGContextRef)};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
1043 static const ATSUAttributeValuePtr values[] = {&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
1044
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1045 #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
1046 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
1047 #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
1048 GetPort (&port);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1049 QDBeginCGContext (port, &context);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1050 if (gc->n_clip_rects || bg_width)
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1051 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1052 CGContextTranslateCTM (context, 0, port_height);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1053 CGContextScaleCTM (context, 1, -1);
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1054 if (gc->n_clip_rects)
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1055 CGContextClipToRects (context, gc->clip_rects,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1056 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
1057 #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
1058 if (bg_width)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1059 {
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1060 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
1061 CGContextFillRect
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1062 (context,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1063 CGRectMake (x, y - FONT_BASE (GC_FONT (gc)),
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1064 bg_width, FONT_HEIGHT (GC_FONT (gc))));
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1065 }
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1066 CGContextScaleCTM (context, 1, -1);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1067 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
1068 #if !USE_CG_DRAWING
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1069 }
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1070 #endif
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1071 CG_SET_FILL_COLOR_WITH_GC_FOREGROUND (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
1072 err = ATSUSetLayoutControls (text_layout,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1073 sizeof (tags) / sizeof (tags[0]),
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1074 tags, sizes, values);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1075 if (err == noErr)
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
1076 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1077 ATSUDrawText (text_layout,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1078 kATSUFromTextBeginning, kATSUToTextEnd,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1079 Long2Fix (x), Long2Fix (port_height - y));
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1080 if (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
1081 ATSUDrawText (text_layout,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1082 kATSUFromTextBeginning, kATSUToTextEnd,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1083 Long2Fix (x + 1), Long2Fix (port_height - y));
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1084 }
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1085 #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
1086 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
1087 context = NULL;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1088 #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
1089 CGContextSynchronize (context);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1090 QDEndCGContext (port, &context);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1091 #endif
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
1092 #if 0
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1093 /* This doesn't work on Mac OS X 10.1. */
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1094 ATSUClearLayoutControls (text_layout,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1095 sizeof (tags) / sizeof (tags[0]), tags);
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
1096 #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
1097 ATSUSetLayoutControls (text_layout,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1098 sizeof (tags) / sizeof (tags[0]),
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1099 tags, sizes, values);
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1100 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1101 }
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1102 #endif /* MAC_OSX */
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1103 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1104 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
1105 #endif /* USE_ATSUI */
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1106 {
59899
96a18b943293 (mac_draw_string_common, x_make_frame_visible): Use
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 59804
diff changeset
1107 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1108 UInt32 savedFlags;
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1109
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1110 if (mac_use_core_graphics)
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1111 savedFlags = SwapQDTextFlags (kQDUseCGTextRendering);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1112 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1113 #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
1114 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
1115 #endif
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1116 mac_begin_clip (gc);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1117 RGBForeColor (GC_FORE_COLOR (gc));
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1118 #ifdef MAC_OS8
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1119 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
1120 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1121 RGBBackColor (GC_BACK_COLOR (gc));
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1122 TextMode (srcCopy);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1123 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1124 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1125 TextMode (srcOr);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1126 #else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1127 /* We prefer not to use srcCopy text transfer mode on Mac OS X
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1128 because:
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1129 - Screen is double-buffered. (In srcCopy mode, a text is
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1130 drawn into an offscreen graphics world first. So
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1131 performance gain cannot be expected.)
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1132 - It lowers rendering quality.
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1133 - Some fonts leave garbage on cursor movement. */
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1134 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
1135 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1136 Rect r;
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1137
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1138 RGBBackColor (GC_BACK_COLOR (gc));
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1139 SetRect (&r, x, y - FONT_BASE (GC_FONT (gc)),
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1140 x + bg_width, y + FONT_DESCENT (GC_FONT (gc)));
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1141 EraseRect (&r);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1142 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1143 TextMode (srcOr);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1144 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1145 TextFont (GC_FONT (gc)->mac_fontnum);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1146 TextSize (GC_FONT (gc)->mac_fontsize);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1147 TextFace (GC_FONT (gc)->mac_fontface);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1148 MoveTo (x, y);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1149 DrawText (buf, 0, nchars * bytes_per_char);
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
1150 if (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
1151 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1152 TextMode (srcOr);
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1153 MoveTo (x + 1, y);
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1154 DrawText (buf, 0, nchars * bytes_per_char);
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1155 }
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1156 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
1157 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
1158 mac_end_clip (gc);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1159
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1160 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1161 if (mac_use_core_graphics)
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1162 SwapQDTextFlags(savedFlags);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1163 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1164 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1165 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1166
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1167
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
1168 /* 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
1169
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1170 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
1171 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
1172 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
1173 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1174 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
1175 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
1176 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
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 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
1179 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
1180 }
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1181
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1182
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1183 /* 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
1184
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 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
1186 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
1187 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
1188 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1189 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
1190 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
1191 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
1192 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1193 mac_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
1194 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
1195 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1196
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1197
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1198 /* 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
1199 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
1200 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
1201 *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
1202
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1203 static OSStatus
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1204 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
1205 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
1206 overall_return, cg_glyph)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1207 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1208 ATSUStyle style;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1209 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1210 void *style;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1211 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1212 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1213 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
1214 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
1215 #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
1216 CGGlyph *cg_glyph;
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 *cg_glyph;
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 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1221 OSStatus err = noErr;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1222 int width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1223 Rect char_bounds;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1224
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1225 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1226 if (style)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1227 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1228 ATSUTextLayout text_layout;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1229 UniChar ch = c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1230
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1231 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
1232 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
1233 && (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
1234 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1235 ATSTrapezoid glyph_bounds;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1236
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1237 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
1238 kATSUFromTextBeginning, kATSUToTextEnd,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1239 #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
1240 kATSUseFractionalOrigins,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1241 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1242 kATSUseDeviceOrigins,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1243 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1244 1, &glyph_bounds, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1245 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1246 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1247 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
1248 == 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
1249
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1250 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
1251 - glyph_bounds.upperLeft.x);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1252 if (font_ascent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1253 *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
1254 if (font_descent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1255 *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
1256 }
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 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
1259 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1260 err = ATSUMeasureTextImage (text_layout,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1261 kATSUFromTextBeginning, kATSUToTextEnd,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1262 0, 0, &char_bounds);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1263 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1264 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
1265 #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
1266 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
1267 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1268 OSStatus err1;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1269 ATSUGlyphInfoArray glyph_info_array;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1270 ByteCount count = sizeof (ATSUGlyphInfoArray);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1271
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1272 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
1273 kATSUToTextEnd, NULL, NULL, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1274 if (err1 == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1275 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
1276 kATSUToTextEnd, &count,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1277 &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
1278 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
1279 /* 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
1280 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
1281 && 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
1282 && 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
1283 && 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
1284 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1285 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
1286 *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
1287 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1288 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1289 *cg_glyph = 0;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1290 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1291 #endif
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 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1294 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1295 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1296 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1297 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
1298 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1299 FontInfo font_info;
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 GetFontInfo (&font_info);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1302 if (font_ascent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1303 *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
1304 if (font_descent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1305 *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
1306 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1307 if (overall_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1308 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1309 char ch = c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1310
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1311 width = CharWidth (ch);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1312 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
1313 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
1314 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1315 }
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 return err;
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
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1320
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1321 /* 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
1322
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1323 static int
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1324 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
1325 XFontStruct *font_struct;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1326 XChar2b *string;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1327 int nchars;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1328 XCharStruct *overall_return;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1329 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1330 int i;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1331 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
1332 XCharStruct *pcm;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1333
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1334 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
1335 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1336 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
1337 if (pcm == NULL)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1338 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
1339 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1340 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1341 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
1342 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
1343 width += pcm->width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1344 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1345 string++;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1346 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1347
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1348 overall_return->lbearing = lbearing;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1349 overall_return->rbearing = rbearing;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1350 overall_return->width = width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1351
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1352 /* 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
1353 }
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 #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
1357 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
1358
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
1359 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
1360 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
1361 {
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1362 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
1363 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
1364
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1365 threshold =
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1366 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
1367 kCFPreferencesCurrentApplication,
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1368 &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
1369 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
1370 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
1371 }
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
1372
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
1373 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
1374 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
1375 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
1376 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
1377 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
1378 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
1379 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
1380 {
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 CGrafPtr port;
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1382 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
1383 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
1384 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
1385 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
1386 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
1387
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
1388 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
1389 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
1390
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1391 port = GetWindowPort (FRAME_MAC_WINDOW (f));
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1392 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
1393 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
1394 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
1395 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
1396 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
1397 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
1398 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
1399 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
1400 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1401 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
1402
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1403 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
1404 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
1405 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
1406 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
1407 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1408
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1409 #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
1410 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
1411 #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
1412 QDBeginCGContext (port, &context);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1413 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
1414 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1415 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
1416 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
1417 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
1418 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
1419 #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
1420 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
1421 {
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1422 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
1423 CGContextFillRect
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1424 (context,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1425 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
1426 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
1427 }
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
1428 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
1429 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
1430 #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
1431 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1432 #endif
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1433 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
1434 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
1435 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
1436 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
1437 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
1438 #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
1439 #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
1440 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
1441 #endif
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1442 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1443 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
1444 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
1445 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
1446 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1447 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
1448 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
1449 }
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1450 }
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1451 #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
1452 else
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1453 #endif
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1454 #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
1455 #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
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 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
1458 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1459 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
1460 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
1461 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
1462 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
1463 }
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
1464 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1465 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1466 #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
1467 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
1468 #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
1469 CGContextSynchronize (context);
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1470 QDEndCGContext (port, &context);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1471 #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
1472
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1473 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
1474 }
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 #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
1476
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1477
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
1478 #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
1479 /* 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
1480
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1481 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1482 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
1483 Pixmap src;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1484 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
1485 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1486 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
1487 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
1488 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
1489 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1490 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
1491
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1492 SetPortWindowPort (FRAME_MAC_WINDOW (f));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1493
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1494 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
1495 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
1496
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1497 ForeColor (blackColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1498 BackColor (whiteColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1499
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1500 mac_begin_clip (gc);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1501 LockPixels (GetGWorldPixMap (src));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1502 #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
1503 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1504 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1505
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1506 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1507 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1508 CopyBits (GetPortBitMapForCopyBits (src),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1509 GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1510 &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
1511 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1512 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1513 #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
1514 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
1515 &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
1516 #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
1517 UnlockPixels (GetGWorldPixMap (src));
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1518 mac_end_clip (gc);
65110
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
1519
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1520 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1521 }
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1522
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1523
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1524 static void
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1525 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
1526 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
1527 Pixmap src, mask;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1528 struct frame *f;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1529 GC gc;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1530 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
1531 unsigned int width, height;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1532 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
1533 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1534 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
1535
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1536 SetPortWindowPort (FRAME_MAC_WINDOW (f));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1537
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1538 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
1539 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
1540
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1541 ForeColor (blackColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1542 BackColor (whiteColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1543
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1544 mac_begin_clip (gc);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1545 LockPixels (GetGWorldPixMap (src));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1546 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
1547 #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
1548 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1549 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1550
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1551 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1552 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1553 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
1554 GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1555 &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
1556 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1557 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1558 #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
1559 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
1560 &(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
1561 #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
1562 UnlockPixels (GetGWorldPixMap (mask));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1563 UnlockPixels (GetGWorldPixMap (src));
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1564 mac_end_clip (gc);
65110
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
1565
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1566 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
1567 }
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
1568 #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
1569
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1570
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1571 /* 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
1572
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1573 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1574 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
1575 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
1576 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1577 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
1578 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
1579 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
1580 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1581 #if TARGET_API_MAC_CARBON
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1582 Rect src_r;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1583 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
1584
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1585 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
1586 #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
1587 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
1588 #endif
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1589 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
1590 &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
1591 kScrollWindowNoOptions, dummy);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1592 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
1593 #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
1594 Rect src_r, dest_r;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1595 WindowPtr w = FRAME_MAC_WINDOW (f);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1596
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1597 SetPort (w);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1598
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1599 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
1600 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
1601
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1602 /* 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
1603 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
1604 ForeColor (blackColor);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1605 BackColor (whiteColor);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1606 mac_begin_clip (gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1607 CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1608 mac_end_clip (gc);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1609
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1610 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1611 #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
1612 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1613
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1614
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1615 /* 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
1616
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1617 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
1618 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
1619 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
1620 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
1621 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
1622 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
1623 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1624 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
1625 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
1626 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
1627 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
1628 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
1629 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
1630 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1631
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1632
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1633 /* 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
1634
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 GC
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1636 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
1637 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
1638 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
1639 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
1640 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
1641 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1642 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
1643
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
1644 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
1645 #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
1646 #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
1647 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1648 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1649 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1650 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
1651 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
1652 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
1653 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1654 #endif
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
1655 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
1656
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1657 return gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1658 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1659
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1660
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1661 /* 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
1662
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1663 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1664 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
1665 Display *display;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1666 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1667 {
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1668 if (gc->clip_region)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1669 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
1670 #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
1671 #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
1672 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
1673 #endif
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1674 {
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1675 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
1676 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
1677 }
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1678 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1679 xfree (gc);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1680 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1681
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1682
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1683 /* 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
1684
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1685 static void
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1686 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
1687 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
1688 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
1689 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
1690 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
1691 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1692 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
1693 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
1694 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
1695 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
1696 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
1697 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
1698 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1699
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1700
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1701 /* 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
1702
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1703 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1704 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
1705 Display *display;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1706 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1707 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
1708 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1709 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
1710 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1711 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
1712 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
1713 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
1714 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
1715 #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
1716 #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
1717 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1718 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1719 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1720 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
1721 if (color == 0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1722 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1723 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
1724 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
1725 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1726 else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1727 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1728 float rgba[4];
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1729
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1730 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
1731 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
1732 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
1733 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
1734 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
1735 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1736 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1737 #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
1738 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1739 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1740
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1741
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1742 /* 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
1743
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1744 void
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1745 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
1746 Display *display;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1747 GC gc;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1748 unsigned long color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1749 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1750 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
1751 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1752 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
1753 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
1754 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
1755 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
1756 #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
1757 #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
1758 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1759 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1760 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1761 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
1762 if (color == 0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1763 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1764 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
1765 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
1766 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1767 else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1768 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1769 float rgba[4];
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1770
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1771 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
1772 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
1773 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
1774 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
1775 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
1776 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1777 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1778 #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
1779 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1780 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1781
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1782
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1783 /* 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
1784
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1785 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
1786 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
1787 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
1788 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
1789 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
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 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
1792 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1793
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1794
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1795 /* Mac replacement for XSetClipRectangles. */
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1796
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1797 static void
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1798 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
1799 Display *display;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1800 GC gc;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1801 Rect *rectangles;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1802 int n;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1803 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1804 int i;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1805
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1806 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
1807
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1808 gc->n_clip_rects = n;
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1809 if (n > 0)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1810 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1811 if (gc->clip_region == NULL)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1812 gc->clip_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1813 RectRgn (gc->clip_region, rectangles);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1814 if (n > 1)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1815 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1816 RgnHandle region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1817
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1818 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
1819 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1820 RectRgn (region, rectangles + i);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1821 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
1822 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1823 DisposeRgn (region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1824 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1825 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
1826 #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
1827 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
1828 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1829 Rect *rect = rectangles + i;
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 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
1832 rect->right - rect->left,
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1833 rect->bottom - rect->top);
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 #endif
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
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1838
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1839 /* Mac replacement for XSetClipMask. */
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 static INLINE void
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1842 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
1843 Display *display;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1844 GC gc;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1845 {
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1846 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
1847 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1848
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1849
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1850 /* 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
1851
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1852 void
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1853 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
1854 Display *display;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1855 WindowPtr w;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1856 unsigned long color;
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 #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
1859 AuxWinHandle aw_handle;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1860 CTabHandle ctab_handle;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1861 ColorSpecPtr ct_table;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1862 short ct_size;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1863 #endif
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1864 RGBColor bg_color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1865
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1866 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
1867 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
1868 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
1869
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1870 #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
1871 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
1872 #else
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1873 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
1874 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1875 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
1876 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
1877 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
1878 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
1879 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
1880 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1881 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
1882 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1883 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
1884 CTabChanged (ctab_handle);
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1885 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
1886 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1887 ct_size--;
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 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1890 #endif
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1891 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1892
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1893 /* 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
1894
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1895 static void
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1896 x_flush (f)
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1897 struct frame *f;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1898 {
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1899 #if TARGET_API_MAC_CARBON
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1900 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
1901 #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
1902 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
1903 #endif
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1904 if (f)
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1905 QDFlushPortBuffer (GetWindowPort (FRAME_MAC_WINDOW (f)), NULL);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1906 else
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1907 QDFlushPortBuffer (GetQDGlobalsThePort (), NULL);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1908 UNBLOCK_INPUT;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1909 #endif
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1910 }
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1911
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1912
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1913 /* 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
1914 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
1915 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
1916 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
1917 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
1918 performance. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1919
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1920 #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
1921
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1922 #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
1923 static void
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1924 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
1925 struct frame *f;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1926 {
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1927 BLOCK_INPUT;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1928 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
1929 UNBLOCK_INPUT;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1930 }
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1931 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1932
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1933 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1934 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
1935 ***********************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1936
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1937 /* 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
1938 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
1939 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
1940 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
1941
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1942 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1943 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
1944 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
1945 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1946 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1947 /* 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
1948 periodically checked with ReceiveNextEvent if
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1949 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
1950 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
1951 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
1952 update of a frame. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1953 BLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1954 DisableScreenUpdates ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1955 UNBLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1956 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1957 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1958
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1959
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1960 /* 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
1961 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
1962 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
1963
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1964 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1965 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
1966 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
1967 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1968 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
1969 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
1970
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1971 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
1972 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
1973
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1974 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1975
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1976 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
1977 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1978 /* 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
1979 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
1980
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1981 /* 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
1982 highlighting. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1983 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
1984 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
1985
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1986 #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
1987 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
1988 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
1989 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
1990 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
1991 here to prevent it from being scrolled. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1992
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1993 /* 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
1994 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
1995 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
1996 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
1997 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
1998 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
1999 && 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
2000 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2001 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2002
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
2003 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
2004 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
2005 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2006
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2007 if (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
2008 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
2009 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2010 #endif /* 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2011 }
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 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2014 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2015
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2016
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2017 /* 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
2018
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2019 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2020 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
2021 struct window *w;
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2022 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
2023 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2024 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
2025 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
2026
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2027 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
2028 if (face)
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2029 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
2030 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
2031
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2032 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
2033 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2034
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2035 /* 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
2036
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2037 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
2038 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
2039
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2040 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
2041 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
2042 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
2043
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2044 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
2045 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
2046 here. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2047
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2048 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2049 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
2050 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
2051 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
2052 {
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2053 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
2054
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2055 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
2056 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2057 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2058
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2059 if (cursor_on_p)
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2060 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
2061 output_cursor.vpos,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2062 output_cursor.x, output_cursor.y);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2063
57373
38e45bf0128a (x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents: 57357
diff changeset
2064 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
2065 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
2066
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2067 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2068 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2069
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2070 /* 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
2071 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
2072 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
2073 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2074 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
2075 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
2076 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
2077 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2078
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2079 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
2080 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2081
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2082
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2083 /* 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
2084 update_end. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2085
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2086 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2087 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
2088 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
2089 {
56890
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2090 /* Mouse highlight may be displayed again. */
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2091 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
2092
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2093 BLOCK_INPUT;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2094 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2095 EnableScreenUpdates ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2096 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2097 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
2098 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2099 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2100
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2101
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2102 /* 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
2103 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
2104 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
2105
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2106 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2107 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
2108 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
2109 {
55539
db942c4b4345 macterm.c (x_flush, XTframe_up_to_date): use FRAME_MAC_P
Steven Tamm <steventamm@mac.com>
parents: 55412
diff changeset
2110 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
2111 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2112 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
2113
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2114 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
2115 || 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
2116 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2117 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2118 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
2119 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
2120 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
2121 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
2122 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
2123 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2124 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2125 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2126 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2127
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2128
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2129 /* 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
2130 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
2131 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
2132 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
2133 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
2134 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
2135
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2136 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2137 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
2138 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
2139 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2140 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
2141 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
2142 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
2143
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2144 xassert (w);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2145
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2146 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
2147 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
2148
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2149 /* 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
2150 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
2151 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
2152 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
2153 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
2154 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
2155 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
2156 && 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
2157 && (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
2158 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
2159 width != 0)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2160 && (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
2161 height > 0))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2162 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2163 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
2164
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2165 /* 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
2166 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
2167 && 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
2168 y -= width;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2169
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2170 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2171 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
2172 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
2173 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2174 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2177
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2178 /* 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
2179 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
2180 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
2181 drawn. */
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 static void
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2184 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
2185 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
2186 struct glyph_row *row;
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2187 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
2188 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2189 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
2190 Display *display = FRAME_MAC_DISPLAY (f);
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2191 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
2192 int rowY;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2193
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2194 /* 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
2195 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
2196 if (p->y < rowY)
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2197 {
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2198 /* 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
2199 visible last row. */
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2200 int oldY = row->y;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2201 int oldVH = row->visible_height;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2202 row->visible_height = p->h;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2203 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
2204 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
2205 row->y = oldY;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2206 row->visible_height = oldVH;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2207 }
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2208 else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2209 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
2210
53885
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
2211 if (p->bx >= 0 && !p->overlay_p)
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2212 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2213 #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
2214 /* 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
2215 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
2216 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
2217 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
2218 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
2219 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
2220 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2221 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
2222 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2223
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2224 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
2225
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2226 #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
2227 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
2228 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
2229 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2230 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2231
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2232 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
2233 #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
2234 && 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
2235 #endif
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2236 )
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2237 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2238 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
2239
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2240 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
2241 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
2242 (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
2243 ? (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
2244 : 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
2245 : 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
2246 #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
2247 mac_draw_cg_image (fringe_bmp[p->which], f, face->gc, 0, p->dh,
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2248 p->wd, p->h, p->x, p->y, p->overlay_p);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2249 #else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2250 mac_draw_bitmap (f, face->gc, p->x, p->y,
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2251 p->wd, p->h, p->bits + p->dh, p->overlay_p);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2252 #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
2253 XSetForeground (display, face->gc, gcv.foreground);
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2254 }
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2255
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2256 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
2257 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2258
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2259 #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
2260 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
2261 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
2262 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
2263 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
2264 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
2265 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2266 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
2267 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
2268
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2269 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
2270 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2271 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
2272 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
2273 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
2274 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
2275 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
2276 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2277
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2278 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
2279 bits[i] = ~bits[i];
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2280 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
2281 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
2282 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
2283 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2284 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
2285 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
2286 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
2287 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
2288 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2289 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2290
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2291 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
2292 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
2293 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
2294 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2295 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
2296 return;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2297
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2298 if (fringe_bmp[which])
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2299 CGImageRelease (fringe_bmp[which]);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2300 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
2301 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2302 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2303
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2304
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2305 /* 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
2306 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
2307 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
2308 rarely happens). */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2309
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2310 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2311 XTset_terminal_modes ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2312 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2313 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2314
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2315 /* 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
2316 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
2317
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2318 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2319 XTreset_terminal_modes ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2320 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2321 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2322
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2323
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2324
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2325 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2326 Display Iterator
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2327 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2328
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2329 /* 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
2330
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2331 static XCharStruct *x_per_char_metric P_ ((XFontStruct *, XChar2b *));
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2332 static int mac_encode_char P_ ((int, XChar2b *, struct font_info *,
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2333 struct charset *, int *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2334
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2335
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2336 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
2337 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
2338 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
2339 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
2340 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2341 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
2342 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
2343 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2344 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
2345 pcm++;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2346 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2347 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2348
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2349 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
2350 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
2351 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
2352 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2353 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
2354
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2355 /* 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
2356 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
2357 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2358
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2359 /* 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
2360 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
2361
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2362 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
2363 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
2364 XFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2365 XChar2b *char2b;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2366 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2367 /* 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
2368 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
2369
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2370 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
2371
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2372 #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
2373 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
2374 {
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2375 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
2376
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2377 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
2378 {
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2379 *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
2380 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
2381 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2382 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
2383 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
2384 {
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2385 BLOCK_INPUT;
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2386 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
2387 (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
2388 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
2389 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
2390 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2391 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2392 else
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2393 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2394 #endif
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2395 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
2396 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2397 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
2398 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2399 /* 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
2400 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
2401 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
2402 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
2403 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
2404 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
2405 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
2406 && 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
2407 && 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
2408 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
2409 + (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
2410 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2411 else
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 /* 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
2414 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
2415 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
2416 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
2417
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2418 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
2419 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
2420
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2421 where:
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 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
2424 / = integer division
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2425 \ = integer modulus */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2426 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
2427 && 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
2428 && 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
2429 && 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
2430 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2431 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
2432 + ((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
2433 * (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
2434 + (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
2435 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2436 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2437 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2438 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2439 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2440 /* 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
2441 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
2442 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
2443 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
2444 && 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
2445 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
2446 }
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2447 #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
2448 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2449 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2450
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2451 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
2452 || (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
2453 #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
2454 && (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
2455 #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
2456 ))
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2457 ? NULL : pcm);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2458 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2459
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2460 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2461 */
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2462
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2463 static XCharStruct *
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2464 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
2465 XFontStruct *font;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2466 XChar2b *char2b;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2467 int font_type;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2468 {
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2469 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
2470 }
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2471
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2472 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2473 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
2474 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
2475
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2476 static int
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2477 mac_encode_char (c, char2b, font_info, charset, two_byte_p)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2478 int c;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2479 XChar2b *char2b;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2480 struct font_info *font_info;
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2481 struct charset *charset;
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2482 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
2483 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2484 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
2485
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2486 /* 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
2487 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
2488 fixed encoding. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2489 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
2490 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2491 /* 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
2492 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
2493
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2494 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
2495 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
2496 {
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2497 ccl->reg[0] = CHARSET_ID (charset);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2498 ccl->reg[1] = XCHAR2B_BYTE2 (char2b);
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2499 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
2500 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2501 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2502 {
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2503 ccl->reg[0] = CHARSET_ID (charset);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2504 ccl->reg[1] = XCHAR2B_BYTE1 (char2b);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2505 ccl->reg[2] = XCHAR2B_BYTE2 (char2b);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2506 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2507
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2508 ccl_driver (ccl, NULL, NULL, 0, 0, Qnil);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2509
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2510 /* 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
2511 program. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2512 if (font->max_byte1 == 0) /* 1-byte font */
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2513 STORE_XCHAR2B (char2b, 0, ccl->reg[1]);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2514 else
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2515 STORE_XCHAR2B (char2b, ccl->reg[1], ccl->reg[2]);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2516 }
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2517 else if (font_info->encoding_type)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2518 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2519 /* 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
2520 encoding numbers. */
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
2521 unsigned char enc = font_info->encoding_type;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2522
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2523 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
2524 && 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
2525 char2b->byte1 |= 0x80;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2526
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2527 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
2528 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
2529
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2530 if (enc == 4)
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2531 {
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2532 int code = (char2b->byte1 << 8) | char2b->byte2;
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2533
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2534 JIS_TO_SJIS (code);
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2535 STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
2536 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2537 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2538
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2539 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
2540 *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
2541
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2542 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
2543 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2544
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2545
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2546
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2547 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2548 Glyph display
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
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2552
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2553 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
2554 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
2555 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
2556 int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2557 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
2558 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
2559 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
2560 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
2561 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
2562 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
2563 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
2564 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
2565 /*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
2566 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
2567 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
2568 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
2569 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
2570 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
2571 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
2572 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
2573 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
2574 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
2575 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
2576 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
2577 Rect *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2578 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
2579 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
2580
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2581 #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
2582 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
2583 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2584
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2585
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2586 /* 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
2587 face. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2588
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2589 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2590 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
2591 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
2592 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2593 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
2594 && 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
2595 && 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
2596 && !s->cmp)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2597 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
2598 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2599 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2600 /* 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
2601 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2602 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
2603
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2604 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
2605 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
2606
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2607 /* 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
2608 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
2609 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
2610 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
2611 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
2612 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
2613 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
2614
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2615 /* 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
2616 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
2617 && 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
2618 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2619 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
2620 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
2621 }
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 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
2624 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
2625 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
2626
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2627 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
2628 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
2629 mask, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2630 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2631 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
2632 = 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
2633
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2634 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
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 /* 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
2640
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2641 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2642 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
2643 struct glyph_string *s;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2644 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2645 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
2646 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
2647
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2648 /* 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
2649 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
2650 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
2651 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
2652 face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2653
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2654 if (s->first_glyph->type == CHAR_GLYPH)
89709
688136a6cab5 (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
Kenichi Handa <handa@m17n.org>
parents: 88123
diff changeset
2655 face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch, -1, Qnil);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2656 else
89709
688136a6cab5 (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
Kenichi Handa <handa@m17n.org>
parents: 88123
diff changeset
2657 face_id = FACE_FOR_CHAR (s->f, face, 0, -1, Qnil);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2658 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
2659 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
2660
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2661 /* 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
2662 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
2663 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
2664 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2665 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2666 /* 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
2667 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
2668 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2669 unsigned long mask;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2670
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2671 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
2672 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
2673 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
2674 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
2675 mask = GCForeground | GCBackground | GCFont;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2676
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2677 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
2678 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
2679 mask, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2680 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2681 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
2682 = XCreateGC (s->display, s->window, mask, &xgcv);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2683
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2684 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
2685 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2686
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2687 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
2688 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2689
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2690
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2691 /* 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
2692 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
2693 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
2694
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2695 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
2696 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
2697 struct glyph_string *s;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2698 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2699 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
2700 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2701
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2702
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2703 /* 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
2704 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
2705 pattern. */
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 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
2708 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
2709 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
2710 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2711 PREPARE_FACE_FOR_DISPLAY (s->f, s->face);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2712
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2713 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
2714 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2715 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
2716 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
2717 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2718 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
2719 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2720 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
2721 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
2722 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2723 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
2724 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2725 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
2726 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
2727 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2728 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
2729 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2730 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
2731 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
2732 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2733 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
2734 || 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
2735 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2736 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
2737 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
2738 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2739 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2740 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2741 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
2742 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
2743 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2744
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2745 /* 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
2746 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
2747 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2748
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2749
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2750 /* 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
2751 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
2752
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2753 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
2754 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
2755 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
2756 {
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2757 Rect rects[MAX_CLIP_RECTS];
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2758 int n;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2759
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2760 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
2761 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
2762 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2763
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2764
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2765 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2766 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
2767 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
2768
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2769 static void
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2770 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
2771 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
2772 {
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2773 if (!(s->cmp == NULL
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2774 && 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
2775 return;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2776
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2777 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
2778 #if USE_ATSUI
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2779 || s->font->mac_style
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2780 #endif
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2781 )
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2782 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2783 XCharStruct cs;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2784
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2785 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
2786 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
2787 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
2788 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2789 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2790 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2791 Rect r;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2792 MacFontStruct *font = s->font;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2793
73133
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2794 #if USE_CG_DRAWING
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2795 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
2796 #endif
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2797 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
2798
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2799 TextFont (font->mac_fontnum);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2800 TextSize (font->mac_fontsize);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2801 TextFace (font->mac_fontface);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2802
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2803 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
2804
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2805 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
2806 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
2807 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2808 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2809
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2810
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2811 /* 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
2812
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2813 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
2814 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
2815 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
2816 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
2817 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2818 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
2819 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2820
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2821
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2822 /* 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
2823 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
2824 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
2825 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
2826 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
2827
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2828 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2829 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
2830 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
2831 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
2832 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2833 /* 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
2834 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
2835 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
2836 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2837 int 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
2838
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2839 #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
2840 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
2841 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2842 /* 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
2843 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
2844 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
2845 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
2846 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
2847 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
2848 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
2849 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
2850 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2851 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2852 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2853 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
2854 || 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
2855 || 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
2856 || force_p)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2857 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2858 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
2859 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
2860 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
2861 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
2862 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2863 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2864 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2865
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2866
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2867 /* 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
2868
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2869 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2870 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
2871 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
2872 {
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2873 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
2874
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2875 /* 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
2876 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
2877 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
2878 && 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
2879 x = s->x + abs (s->face->box_line_width);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2880 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2881 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
2882
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2883 /* 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
2884 loaded. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2885 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
2886 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2887 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
2888 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2889 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
2890 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
2891 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
2892 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
2893 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2894 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2895 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2896 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2897 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
2898 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
2899
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2900 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
2901 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
2902
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2903 /* 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
2904 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
2905 #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
2906 && 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
2907 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2908 )
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2909 for (i = 0; i < 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
2910 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
2911
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2912 /* 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
2913 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
2914 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
2915 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
2916 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
2917 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
2918 || (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
2919 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
2920 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2921 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
2922
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2923 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
2924 #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
2925 || 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
2926 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2927 )
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
2928 #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
2929 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
2930 && 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
2931 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
2932 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
2933 ;
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2934 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2935 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2936 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
2937 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
2938 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
2939 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
2940 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
2941 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
2942 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
2943 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2944 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2945
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2946 /* 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
2947
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2948 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2949 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
2950 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
2951 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2952 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
2953
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2954 /* 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
2955 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
2956 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
2957 && 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
2958 x = s->x + abs (s->face->box_line_width);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2959 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2960 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
2961
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2962 /* 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
2963 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
2964 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
2965 this composition. */
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 /* 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
2968 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
2969 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
2970 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2971 if (s->gidx == 0)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2972 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
2973 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
2974 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2975 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2976 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2977 for (i = 0; i < s->nchars; i++, ++s->gidx)
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
2978 mac_draw_image_string_16 (s->f, s->gc,
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
2979 x + s->cmp->offsets[s->gidx * 2],
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
2980 s->ybase - s->cmp->offsets[s->gidx * 2 + 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
2981 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
2982 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2983 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2984
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 #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
2987
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2988 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
2989
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2990
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2991 /* 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
2992 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
2993
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2994 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
2995 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
2996 Widget widget;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2997 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2998 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
2999 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
3000 struct frame *f;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3001
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3002 dpyinfo = x_display_info_for_display (XtDisplay (widget));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3003
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3004 /* 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
3005 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
3006 (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
3007 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
3008 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
3009 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
3010
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3011 /* 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
3012 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
3013 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
3014 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
3015 && (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
3016 (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
3017 && 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
3018 && 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
3019 return f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3020
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3021 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3022 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3023
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3024
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3025 /* 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
3026 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
3027 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
3028 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
3029
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3030 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3031 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
3032 Widget widget;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3033 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3034 XColor *color;
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 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
3037 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
3038 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3039
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3040
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3041 #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
3042
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3043 #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
3044
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3045 /* 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
3046 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
3047 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
3048 color allocated. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3049
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3050 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3051 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
3052 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
3053 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3054 XColor *color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3055 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3056 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
3057 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
3058 int rc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3059
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3060 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
3061 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
3062 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
3063 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3064 /* 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
3065 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
3066 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
3067 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
3068 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
3069 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
3070 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
3071 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
3072
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3073 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
3074 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
3075 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
3076
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3077 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
3078 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3079 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
3080 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
3081 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
3082 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
3083
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3084 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
3085 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3086 nearest = i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3087 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
3088 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3089 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3090
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3091 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
3092 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
3093 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
3094 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
3095 }
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 #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
3098 if (rc)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3099 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
3100 #endif /* DEBUG_X_COLORS */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3101
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3102 return rc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3103 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3104
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3105
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3106 /* 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
3107 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
3108 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
3109
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3110 unsigned long
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3111 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
3112 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
3113 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
3114 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3115 XColor color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3116
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3117 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
3118 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3119 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
3120 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
3121 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3122 #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
3123 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
3124 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3125 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
3126 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3127
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 /* 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
3130 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
3131 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
3132
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3133 unsigned long
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3134 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
3135 Display *dpy;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3136 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3137 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
3138 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3139 XColor color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3140
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3141 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
3142 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3143 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
3144 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
3145 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3146 #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
3147 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
3148 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3149 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
3150 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3151
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3152 #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
3153
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3154
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3155 /* 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
3156 boosted.
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3157
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3158 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
3159 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
3160 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
3161 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
3162 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
3163
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3164 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
3165 (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
3166 #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
3167
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3168
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3169 /* 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
3170 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
3171 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
3172 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
3173 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
3174 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
3175
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3176 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3177 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
3178 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
3179 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
3180 double factor;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3181 int delta;
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 unsigned long new;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3184 long bright;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3185
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3186 /* 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
3187 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
3188
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3189 /* 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
3190 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
3191 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
3192 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
3193 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
3194
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3195 /* Calculate brightness of COLOR. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3196 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
3197 + 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
3198
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3199 /* 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
3200 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
3201 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
3202 /* 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
3203 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
3204 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3205 /* 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
3206 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
3207 /* The additive adjustment. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3208 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
3209
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3210 if (factor < 1)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3211 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
3212 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
3213 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
3214 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3215 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
3216 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
3217 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
3218 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3219
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3220 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
3221 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
3222 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
3223 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
3224
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3225 /* 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
3226 /* 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
3227
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3228 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
3229 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3230
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3231 *color = new;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3232
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3233 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3234 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3235
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3236
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3237 /* 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
3238 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
3239 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
3240 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
3241 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
3242 be allocated, use DEFAULT_PIXEL, instead. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3243
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3244 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3245 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
3246 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
3247 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
3248 double factor;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3249 int delta;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3250 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
3251 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3252 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3253 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
3254 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
3255 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
3256 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
3257 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
3258
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3259 /* 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
3260
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3261 /* 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
3262 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
3263 pixel = background;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3264 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
3265 && 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
3266 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3267 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
3268 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
3269 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3270
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3271 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
3272 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3273 #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
3274 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
3275 mask |= GCStipple;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3276 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3277 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
3278 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3279 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3280 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
3281 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3282
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3283
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3284 /* 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
3285
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3286 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3287 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
3288 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
3289 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3290 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
3291 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
3292
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3293 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
3294 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
3295 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
3296 && s->img->pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3297 && !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
3298 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
3299 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3300 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3301 XGCValues xgcv;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3302
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3303 /* 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
3304 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
3305 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
3306 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3307
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3308 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
3309 || 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
3310 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3311 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
3312 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
3313 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
3314 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
3315 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
3316 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3317 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3318
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3319
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3320 /* 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
3321 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
3322 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
3323 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
3324 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
3325 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
3326 when drawing. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3327
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3328 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3329 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
3330 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
3331 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
3332 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
3333 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
3334 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
3335 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3336 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
3337 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3338 GC gc;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3339
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3340 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
3341 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
3342 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3343 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
3344 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
3345
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3346 /* Top. */
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3347 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
3348 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
3349 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
3350 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
3351 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
3352
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3353 /* Left. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3354 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
3355 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
3356 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
3357 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
3358
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3359 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
3360 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
3361 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
3362 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3363 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
3364 mac_set_clip_rectangles (dpy, gc, clip_rect, 1);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3365
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3366 /* Bottom. */
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3367 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
3368 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
3369 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
3370 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
3371 right_x + 1 - i * right_p, bottom_y - i);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3372
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3373 /* Right. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3374 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
3375 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
3376 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
3377 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
3378
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3379 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
3380 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3381
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3382
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3383 /* Draw 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
3384 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
3385 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
3386 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
3387 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
3388 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
3389
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3390 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3391 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
3392 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
3393 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
3394 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
3395 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
3396 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3397 XGCValues xgcv;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3398
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
3399 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
3400 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
3401 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
3402
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3403 /* Top. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3404 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
3405 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
3406
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3407 /* Left. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3408 if (left_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3409 mac_fill_rectangle (s->f, s->gc, left_x, top_y,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3410 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
3411
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3412 /* Bottom. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3413 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
3414 right_x - left_x + 1, width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3415
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3416 /* Right. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3417 if (right_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3418 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
3419 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
3420
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
3421 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
3422 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
3423 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3424
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3425
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3426 /* 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
3427
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3428 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3429 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
3430 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
3431 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3432 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
3433 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
3434 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
3435 Rect clip_rect;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3436
59655
369714ad80ed (x_draw_glyph_string_box): Fix last_x for full width rows.
Kim F. Storm <storm@cua.dk>
parents: 59586
diff changeset
3437 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
3438 ? 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
3439 : window_box_right (s->w, s->area));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3440
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3441 /* 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
3442 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
3443 ? 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
3444 : 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
3445
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3446 width = abs (s->face->box_line_width);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3447 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
3448 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
3449 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
3450 ? last_x - 1
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3451 : 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
3452 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
3453 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
3454
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3455 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
3456 || (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
3457 && (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
3458 || 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
3459 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
3460 || (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
3461 && (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
3462 || s->next->hl != s->hl)));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3463
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3464 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
3465
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3466 if (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
3467 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
3468 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
3469 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3470 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3471 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
3472 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
3473 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
3474 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3475 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3476
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3477
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3478 /* 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
3479
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3480 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3481 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
3482 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
3483 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3484 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
3485 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
3486
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3487 /* 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
3488 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
3489 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
3490 && 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
3491 && 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
3492 x += abs (s->face->box_line_width);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3493
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3494 /* 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
3495 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
3496 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
3497 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
3498 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
3499 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
3500
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3501 if (s->img->pixmap)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3502 {
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
3503 x_set_glyph_string_clipping (s);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
3504
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3505 #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
3506 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
3507 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
3508 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
3509 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3510 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
3511 #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
3512 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
3513 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
3514 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
3515 #else
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3516 ;
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3517 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3518 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3519 {
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3520 #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
3521 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
3522 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
3523 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
3524 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3525
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3526 /* 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
3527 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
3528 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
3529 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
3530 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
3531 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
3532 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
3533 {
0b6da8b7d7ac (x_draw_image_foreground, x_draw_image_foreground_1):
Kim F. Storm <storm@cua.dk>
parents: 45111
diff changeset
3534 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
3535 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
3536 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
3537 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
3538 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
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 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3541 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3542 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3543 /* 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
3544 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
3545 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
3546 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3547
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3548
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3549 /* 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
3550
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3551 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3552 x_draw_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
3553 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
3554 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3555 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
3556 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
3557 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
3558 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
3559
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3560 /* 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
3561 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
3562 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
3563 && 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
3564 && 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
3565 x += abs (s->face->box_line_width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3566
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3567 /* 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
3568 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
3569 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
3570 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
3571 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
3572 y += s->img->vmargin;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3573
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3574 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
3575 || 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
3576 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3577 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
3578 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
3579 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3580 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3581 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3582 thick = abs (s->img->relief);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3583 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
3584 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3585
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3586 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
3587 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
3588 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
3589 y1 = y + s->slice.height + thick - 1;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3590
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3591 x_setup_relief_colors (s);
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3592 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
3593 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
3594 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
3595 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
3596 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
3597 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
3598 &r);
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3601
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3602 /* 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
3603 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
3604
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3605 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3606 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
3607 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
3608 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
3609 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3610 #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
3611 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
3612 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3613 /* 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
3614 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
3615 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
3616 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
3617 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3618 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3619 #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
3620 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
3621 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3622
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3623
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3624 /* 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
3625
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3626 s->y
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3627 s->x +-------------------------
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3628 | 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
3629 |
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3630 | +-------------------------
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3631 | | 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
3632 | |
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3633 | | +-------------------
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3634 | | | the image
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3635
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3636 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3637
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3638 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3639 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
3640 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
3641 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3642 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
3643 int box_line_hwidth = abs (s->face->box_line_width);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3644 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
3645 int height;
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 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
3648
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3649
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3650 /* 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
3651 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
3652 flickering. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3653 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
3654 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
3655 || 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
3656 || 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
3657 || 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
3658 || 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
3659 || 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
3660 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3661 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
3662 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
3663 && 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
3664 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
3665
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3666 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
3667 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
3668 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
3669
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3670 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
3671
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3672 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
3673 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3674
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3675 /* Draw the foreground. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3676 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
3677
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3678 /* 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
3679 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
3680 || 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
3681 || 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
3682 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
3683 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3684
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3685
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3686 /* 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
3687
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3688 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3689 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
3690 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
3691 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3692 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
3693 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
3694
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3695 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
3696 && !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
3697 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3698 /* 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
3699 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
3700 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
3701 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
3702
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3703 if (x < left_x)
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3704 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3705 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
3706 x = left_x;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3707 }
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3708 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
3709
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3710 /* Draw cursor. */
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3711 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
3712
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3713 /* 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
3714 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
3715 {
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3716 int y = s->y;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3717 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
3718 Rect r;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3719 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
3720
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3721 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
3722 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
3723 && 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
3724 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3725 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
3726 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
3727 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3728 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3729 gc = s->face->gc;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3730
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3731 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
3732 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
3733
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3734 #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
3735 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
3736 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3737 /* 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
3738 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
3739 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
3740 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
3741 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3742 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3743 #endif /* MAC_TODO */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3744 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
3745 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3746 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3747 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
3748 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3749 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
3750 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
3751
72470
3b82c004bf25 (x_draw_stretch_glyph_string): It is ok to draw a
Kim F. Storm <storm@cua.dk>
parents: 71965
diff changeset
3752 /* 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
3753 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
3754 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
3755 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3756 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
3757 x = left_x;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3758 }
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3759 if (background_width > 0)
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3760 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
3761 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3762
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3763 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
3764 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3765
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3766
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3767 /* 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
3768
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3769 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3770 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
3771 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
3772 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3773 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
3774
59718
d4cb255b034d * dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents: 59655
diff changeset
3775 /* 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
3776 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
3777 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
3778 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
3779 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
3780 && 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
3781 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3782 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
3783 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
3784 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
3785 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
3786 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3787
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3788 /* 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
3789 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
3790
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3791 /* 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
3792 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
3793 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
3794 && 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
3795 && (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
3796 || 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
3797
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3798 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3799 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
3800 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
3801 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
3802 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
3803 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
3804 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3805 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3806 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
3807
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3808 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
3809 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3810 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
3811 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
3812 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3813
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3814 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
3815 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
3816 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3817
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3818 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
3819 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
3820 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
3821 else
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3822 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
3823 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
3824 break;
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 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
3827 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
3828 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
3829 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3830 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
3831 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
3832 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3833
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3834 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3835 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3836 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3837
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
3838 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
3839 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3840 /* Draw underline. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3841 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
3842 {
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3843 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
3844 int y;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3845
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3846 #if 0
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3847 /* 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
3848 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
3849 #endif
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3850 h = 1;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3851
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3852 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
3853 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
3854 {
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3855 /* 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
3856 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
3857 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
3858 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
3859
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3860 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
3861 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
3862
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3863 #if 0
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3864 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
3865 && 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
3866 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
3867 else
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3868 #endif
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3869 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
3870 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
3871 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3872
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3873 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
3874 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
3875 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
3876 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3877 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3878 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3879 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
3880 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
3881 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
3882 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
3883 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
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3887 /* Draw overline. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3888 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
3889 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3890 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
3891
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3892 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
3893 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
3894 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
3895 else
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 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3898 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
3899 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
3900 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
3901 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
3902 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
3903 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3904 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3905
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3906 /* 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
3907 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
3908 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3909 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
3910 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
3911
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3912 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
3913 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
3914 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
3915 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3916 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3917 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3918 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
3919 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
3920 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
3921 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
3922 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
3923 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3924 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3925
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3926 /* 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
3927 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
3928 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
3929 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3930
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3931 /* Reset clipping. */
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3932 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
3933 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3934
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3935 /* 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
3936
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3937 void
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3938 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
3939 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3940 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
3941 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3942 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
3943 x, y, width, height,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3944 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
3945 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3946
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3947 /* 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
3948 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
3949
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3950 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3951 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
3952 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
3953 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3954 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3955 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3956
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3957
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3958 /* 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
3959 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
3960
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3961 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3962 x_clear_frame ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3963 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3964 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
3965
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3966 if (updating_frame)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3967 f = updating_frame;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3968 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3969 f = SELECTED_FRAME ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3970
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3971 /* 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
3972 longer visible. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3973 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
3974 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
3975 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
3976
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3977 /* 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
3978 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
3979 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3980 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
3981
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3982 /* 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
3983 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
3984 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
3985
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3986 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
3987 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3988 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3989
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3990
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3991
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3992 /* 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
3993
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3994 /* 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
3995 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
3996
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3997 #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
3998
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3999
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4000 /* 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
4001 *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
4002
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4003 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4004 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
4005 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
4006 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4007 /* 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
4008 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
4009 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
4010 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4011 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
4012 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
4013 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
4014 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4015
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4016 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
4017 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4018 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
4019 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
4020 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
4021 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4022
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4023 /* 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
4024 positive. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4025 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
4026 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
4027
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4028 /* 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
4029 negative. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4030 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
4031 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4032
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4033 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4034 XTflash (f)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4035 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
4036 {
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4037 /* 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
4038 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
4039 /* 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
4040 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
4041 /* 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
4042 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
4043 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
4044
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4045 int width;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4046
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4047 /* 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
4048 edge it is next to. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4049 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
4050 {
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4051 case vertical_scroll_bar_left:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4052 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
4053 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4054
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4055 case vertical_scroll_bar_right:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4056 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
4057 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4058
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4059 default:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4060 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4061 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4062
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4063 width = flash_right - flash_left;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4064
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4065 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4066
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4067 /* 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
4068 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
4069 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4070 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
4071 (FRAME_INTERNAL_BORDER_WIDTH (f)
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4072 + 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
4073 width, flash_height);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4074 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
4075 (height - flash_height
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4076 - FRAME_INTERNAL_BORDER_WIDTH (f)),
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4077 width, flash_height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4078 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4079 else
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4080 /* 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
4081 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
4082 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
4083
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4084 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
4085
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4086 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4087 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
4088
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4089 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
4090
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4091 /* 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
4092 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
4093 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
4094 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
4095
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4096 /* 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
4097 available. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4098 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
4099 {
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4100 struct timeval current;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4101 struct timeval timeout;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4102
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4103 EMACS_GET_TIME (current);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4104
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4105 /* 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
4106 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
4107 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4108
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4109 /* How long `select' should wait. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4110 timeout.tv_sec = 0;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4111 timeout.tv_usec = 10000;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4112
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4113 /* 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
4114 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
4115 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4116 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4117
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4118 /* 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
4119 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
4120 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4121 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
4122 (FRAME_INTERNAL_BORDER_WIDTH (f)
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4123 + 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
4124 width, flash_height);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4125 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
4126 (height - flash_height
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4127 - FRAME_INTERNAL_BORDER_WIDTH (f)),
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4128 width, flash_height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4129 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4130 else
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4131 /* 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
4132 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
4133 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
4134
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4135 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
4136
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4137 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4138 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4139
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4140 #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
4141
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4142
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4143 /* 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
4144
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4145 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4146 XTring_bell ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4147 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4148 struct frame *f = SELECTED_FRAME ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4149
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4150 #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
4151 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
4152 XTflash (f);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4153 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4154 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4155 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4156 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 SysBeep (1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4158 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
4159 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4160 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4161 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4162
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4163
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4164 /* 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
4165 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
4166 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
4167 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
4168
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
4169 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
4170 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
4171 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
4172 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4173 /* 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
4174 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4175
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4176
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4177
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4178 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4179 Line Dance
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4180 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4181
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4182 /* 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
4183 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
4184
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4185 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4186 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
4187 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
4188 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4189 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4190 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4191
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4192
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4193 /* 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
4194
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4195 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4196 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
4197 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
4198 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
4199 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4200 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
4201 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
4202
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4203 /* 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
4204 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
4205 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
4206 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
4207
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4208 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
4209 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
4210 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
4211
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4212 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
4213 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4214 /* 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
4215 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
4216 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
4217 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
4218 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4219 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
4220 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4221 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4222 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4223 /* 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
4224 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
4225 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
4226 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
4227 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4228 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
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 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4232
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4233 /* 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
4234 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
4235 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
4236
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4237 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
4238 x, from_y,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4239 width, height,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4240 x, to_y);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4241
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4242 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4243 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4244
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4245
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 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4248 Exposure Events
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4249 ***********************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4250
44890
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4253 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
4254 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
4255 {
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4256 OSErr err;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4257 ControlRef root_control;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4258
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4259 BLOCK_INPUT;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4260 err = GetRootControl (FRAME_MAC_WINDOW (f), &root_control);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4261 if (err == noErr)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4262 ActivateControl (root_control);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4263 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
4264 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
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4268 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
4269 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
4270 {
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4271 OSErr err;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4272 ControlRef root_control;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4273
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4274 BLOCK_INPUT;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4275 err = GetRootControl (FRAME_MAC_WINDOW (f), &root_control);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4276 if (err == noErr)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4277 DeactivateControl (root_control);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4278 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
4279 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
4280 }
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 /* 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
4283 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
4284 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
4285 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
4286 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
4287
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4288 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4289 x_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
4290 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
4291 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
4292 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4293 struct frame *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
4294
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4295 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
4296 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4297 /* 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
4298 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
4299 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
4300
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4301 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
4302 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
4303
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4304 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4305 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
4306 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
4307 selected_frame);
51048
7ac9c3bea5ea (Fselect_window): Add optional arg `norecord'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 50701
diff changeset
4308 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
4309 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
4310 #endif /* ! 0 */
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 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
4313 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
4314 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4315 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
4316
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
4317 #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
4318 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
4319 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
4320 #endif
44890
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4323 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
4324 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4325
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4326 /* 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
4327 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
4328 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
4329
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4330 static void
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4331 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
4332 int type;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4333 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
4334 struct frame *frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4335 struct input_event *bufp;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4336 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4337 if (type == activeFlag)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4338 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4339 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
4340 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4341 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
4342 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
4343
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4344 /* 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
4345 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
4346 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
4347 && GC_CONSP (Vframe_list)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4348 && !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
4349 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4350 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
4351 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
4352 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4353 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4354 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4355 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4356 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4357 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
4358 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4359 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
4360 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
4361 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4362 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4363 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4364
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4365 /* 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
4366 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
4367
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4368 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
4369
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4370 static void
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4371 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
4372 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
4373 const EventRecord *event;
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4374 struct input_event *bufp;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4375 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4376 struct frame *frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4377
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4378 frame = mac_window_to_frame ((WindowPtr) event->message);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4379 if (! frame)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4380 return;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4381
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4382 /* 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
4383 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
4384 dpyinfo, frame, bufp);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4385 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4386
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4387
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4388 /* 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
4389
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4390 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4391 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
4392 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
4393 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4394 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
4395 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4396
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4397 /* 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
4398 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
4399 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
4400
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4401 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
4402 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
4403 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
4404
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4405 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4406 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
4407 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
4408 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4409 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
4410 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4411
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4412 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4413 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
4414 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
4415 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4416 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
4417
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4418 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
4419 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4420 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
4421 = ((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
4422 ? 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
4423 : 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
4424 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
4425 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4426 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
4427 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
4428 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4429 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4430 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4431 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
4432
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4433 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
4434 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4435 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
4436 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
4437 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
4438 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
4439 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4440 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4441
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4442
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4443
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4444 /* 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
4445
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4446 char *
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4447 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
4448 int keysym;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4449 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4450 char *value;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4451
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4452 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4453 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4454 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
4455 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4456 value = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4457 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4458 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4459
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4460 return value;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4461 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4462
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4463
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 /* 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
4466 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
4467
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4468 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
4469 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
4470 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
4471 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
4472
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4473 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
4474 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
4475
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
4476 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
4477 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
4478 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
4479 Point *pos;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4480 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4481 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
4482 #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
4483 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4484 #endif
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 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
4487 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
4488 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
4489
76535
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4490 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
4491 #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
4492 && !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
4493 #else
76535
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4494 && !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
4495 #endif
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4496 )
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4497 {
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4498 /* 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
4499 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
4500 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
4501 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
4502 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
4503 if (!dpyinfo->grabbed)
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4504 rif->define_frame_cursor (frame,
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4505 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
4506 }
12069a316614 (note_mouse_movement): Don't return immediately for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76437
diff changeset
4507
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4508 /* 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
4509 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
4510 || !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
4511 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4512 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
4513 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
4514 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
4515 /* 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
4516 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
4517 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
4518 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
4519 }
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
4520
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
4521 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
4522 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4523
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 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4526 Mouse Face
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4527 ************************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4528
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4529 /* 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
4530
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4531 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4532 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
4533 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4534 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
4535 && 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
4536 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
4537 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
4538 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
4539 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4540
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4541
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4542 static struct frame *
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4543 mac_focus_frame (dpyinfo)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4544 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
4545 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4546 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
4547 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
4548 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4549 /* 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
4550 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
4551 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
4552 return SELECTED_FRAME ();
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4553 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4554
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4555
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4556 /* 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
4557 *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
4558
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4559 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
4560 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
4561 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
4562 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
4563
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4564 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
4565 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
4566 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
4567
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4568 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
4569 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
4570
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4571 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
4572
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4573 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
4574 movement. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4575
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4576 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4577 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
4578 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
4579 int insist;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4580 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
4581 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
4582 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
4583 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
4584 {
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4585 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
4586
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4587 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4588
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4589 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
4590 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
4591 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4592 {
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4593 Lisp_Object frame, tail;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4594
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4595 /* 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
4596 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
4597 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
4598
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4599 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
4600
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4601 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
4602 && 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
4603 f1 = last_mouse_frame;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4604 else
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4605 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
4606
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4607 if (f1)
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4608 {
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4609 /* 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
4610 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
4611 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
4612 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
4613 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
4614 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
4615 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
4616 Point mouse_pos;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4617
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4618 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
4619 GetMouse (&mouse_pos);
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4620 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
4621 &last_mouse_glyph);
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
4622 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
4623
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4624 *bar_window = Qnil;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4625 *part = 0;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4626 *fp = f1;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4627 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
4628 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
4629 *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
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 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4632
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4633 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4634 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4635
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4636
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4637 /************************************************************************
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4638 Toolkit scroll bars
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4639 ************************************************************************/
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4640
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4641 #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
4642
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4643 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
4644 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
4645 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
4646 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
4647 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
4648 struct input_event *));
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4649 static OSStatus get_control_part_bounds P_ ((ControlHandle, ControlPartCode,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4650 Rect *));
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4651 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
4652 ControlPartCode, Point,
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4653 struct input_event *));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4654 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
4655 struct input_event *));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4656 static void x_scroll_bar_handle_drag P_ ((WindowPtr, struct scroll_bar *,
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4657 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
4658 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
4659 int, int, int));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4660
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4661 /* 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
4662
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4663 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
4664
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4665 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
4666
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4667 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
4668
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4669 #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
4670 #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
4671
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4672 static pascal void
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4673 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
4674 EventLoopTimerRef timer;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4675 void *data;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4676 {
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4677 OSStatus err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4678
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4679 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
4680 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4681 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
4682 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4683
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4684 static OSStatus
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4685 install_scroll_bar_timer ()
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4686 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4687 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
4688
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4689 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
4690 scroll_bar_timer_callbackUPP =
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4691 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
4692
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4693 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
4694 /* 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
4695 kEventDurationForever as delays. */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4696 return
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4697 InstallEventLoopTimer (GetCurrentEventLoop (),
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4698 kEventDurationForever, kEventDurationForever,
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4699 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
4700 &scroll_bar_timer);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4701 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4702
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4703 static OSStatus
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4704 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
4705 EventTimerInterval delay;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4706 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4707 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
4708 install_scroll_bar_timer ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4709
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4710 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
4711
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4712 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
4713 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4714
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4715 static int
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4716 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
4717 ControlPartCode part_code;
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 switch (part_code)
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 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
4722 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
4723 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
4724 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
4725 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
4726 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4727
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4728 return -1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4729 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4730
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4731 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
4732 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
4733 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4734 int part;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4735 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4736 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4737 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
4738 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
4739 bufp->arg = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4740 bufp->part = part;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4741 bufp->code = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4742 XSETINT (bufp->x, 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4743 XSETINT (bufp->y, 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4744 bufp->modifiers = 0;
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
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4747 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
4748 get_control_part_bounds (ch, part_code, rect)
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4749 ControlHandle ch;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4750 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4751 Rect *rect;
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 RgnHandle region = NewRgn ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4754 OSStatus err;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4755
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4756 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
4757 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4758 GetRegionBounds (region, rect);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4759 DisposeRgn (region);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4760
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4761 return err;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4762 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4763
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4764 static void
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4765 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
4766 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4767 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
4768 Point mouse_pos;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4769 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4770 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4771 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
4772
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4773 if (part < 0)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4774 return;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4775
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4776 if (part != scroll_bar_handle)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4777 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4778 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
4779 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4780 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
4781 bar->dragging = Qnil;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4782 }
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4783 else
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4784 {
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4785 Rect r;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4786
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4787 get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar),
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4788 kControlIndicatorPart, &r);
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4789 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
4790 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4791
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4792 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
4793 tracked_scroll_bar = bar;
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 void
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4797 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
4798 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4799 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4800 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4801 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
4802 || (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
4803 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
4804
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4805 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4806 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
4807
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4808 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
4809 bar->dragging = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4810 tracked_scroll_bar = NULL;
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
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4813 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
4814 x_scroll_bar_handle_drag (win, bar, mouse_pos, bufp)
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4815 WindowPtr win;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4816 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4817 Point mouse_pos;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4818 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4819 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4820 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4821
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4822 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
4823 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4824 int top, top_range;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4825 Rect r;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4826
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
4827 get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar),
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
4828 kControlIndicatorPart, &r);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4829
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4830 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
4831 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
4832
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4833 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
4834 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
4835
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4836 if (top < 0)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4837 top = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4838 if (top > top_range)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4839 top = top_range;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4840
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4841 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
4842 XSETINT (bufp->x, top);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4843 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
4844 }
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4845 else
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4846 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4847 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4848 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
4849
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4850 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
4851 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4852 else
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 part = control_part_code_to_scroll_bar_part (part_code);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4855
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4856 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
4857 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4858 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
4859 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
4860 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
4861 && 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
4862 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4863 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4864
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4865 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
4866 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
4867 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
4868 && 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
4869 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4870 break;
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
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4874 if (unhilite_p)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4875 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4876 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
4877 || 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
4878 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4879 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
4880 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
4881 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4882 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
4883 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4884 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4885 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4886
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4887 /* 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
4888 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
4889
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4890 static void
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4891 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
4892 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4893 int portion, position, whole;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4894 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4895 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
69113
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4896 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
4897
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4898 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
4899 return;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4900
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4901 if (whole <= portion)
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4902 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
4903 else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4904 {
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4905 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
4906
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4907 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
4908 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
4909 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
4910 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
4911 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4912
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4913 BLOCK_INPUT;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4914
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4915 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
4916 || 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
4917 || 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
4918 {
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4919 /* 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
4920 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
4921
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4922 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
4923 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
4924 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
4925
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4926 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
4927 }
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
4928
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4929 UNBLOCK_INPUT;
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
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4932 #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
4933
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4934
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4935
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4936 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4937 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
4938 ************************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4939
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4940 /* 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
4941 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
4942 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
4943 scroll bar. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4944
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4945 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
4946 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
4947 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
4948 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
4949 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4950 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
4951 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
4952 = 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
4953 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4954 ControlHandle ch;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4955
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4956 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4957
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4958 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
4959 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
4960 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
4961 r.bottom = disp_top + disp_height;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4962
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
4963 #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
4964 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
4965 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
4966 #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
4967 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
4968 #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
4969 false,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4970 #else
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4971 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
4972 #endif
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4973 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
4974 #else
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4975 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
4976 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
4977 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4978 SET_SCROLL_BAR_CONTROL_HANDLE (bar, ch);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4979
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4980 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
4981 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
4982 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
4983 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
4984 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
4985 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
4986 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
4987 bar->dragging = Qnil;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4988 #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
4989 bar->track_top = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4990 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
4991 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
4992 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4993
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4994 /* 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
4995 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
4996 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
4997 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
4998 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
4999 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
5000
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5001 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5002 return bar;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5003 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5004
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5005
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5006 /* Draw BAR's handle in the proper position.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5007
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5008 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
5009 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
5010 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
5011 events.)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5012
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5013 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
5014 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
5015 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
5016 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
5017 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
5018
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5019 #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
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5022 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
5023 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
5024 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
5025 int rebuild;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5026 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5027 int dragging = ! NILP (bar->dragging);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5028 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5029 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
5030 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
5031 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
5032
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5033 /* 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
5034 if (! rebuild
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5035 && 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
5036 && 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
5037 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5038
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5039 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5040
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5041 /* 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
5042 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
5043 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
5044 start = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5045 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
5046 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
5047 end = start + length;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5048
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5049 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
5050 end = start;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5051 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
5052 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
5053
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5054 /* 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
5055 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
5056 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
5057
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5058 /* 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
5059 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
5060 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
5061
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5062 /* 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
5063 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
5064 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
5065 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
5066
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5067 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
5068 /* 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
5069 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
5070 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
5071 - (end - start));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5072 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
5073 #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
5074 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
5075 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5076
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5077 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5078 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5079
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5080 #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
5081
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5082 /* 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
5083 nil. */
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5086 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
5087 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
5088 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5089 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
5090
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5091 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5092
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5093 #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
5094 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
5095 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5096 /* Destroy the Mac scroll bar control */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5097 DisposeControl (SCROLL_BAR_CONTROL_HANDLE (bar));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5098
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5099 /* 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
5100 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
5101
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5102 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5103 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5104
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5105
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5106 /* 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
5107 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
5108 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
5109 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
5110
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5111 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5112 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
5113 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
5114 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
5115 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5116 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
5117 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
5118 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
5119 int window_y, window_height;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5120
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5121 /* Get window dimensions. */
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5122 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
5123 top = window_y;
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5124 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
5125 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
5126
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5127 /* 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
5128 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
5129
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5130 /* 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
5131 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
5132 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
5133 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
5134 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5135 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
5136
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5137 /* 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
5138 if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w))
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5139 sb_left = left;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5140 else
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5141 sb_left = left + width - sb_width;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5142
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5143 /* 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
5144 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
5145 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
5146 #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
5147 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
5148 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5149 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
5150 disp_height++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5151 }
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5152 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
5153 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5154 disp_top++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5155 disp_height--;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5156 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5157
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5158 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
5159 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
5160 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5161
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5162 /* 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
5163 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
5164 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5165 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5166 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
5167 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5168 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
5169 disp_height);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5170 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
5171 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5172 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5173 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5174 /* It may just need to be moved and resized. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5175 ControlHandle ch;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5176
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5177 bar = XSCROLL_BAR (w->vertical_scroll_bar);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5178 ch = SCROLL_BAR_CONTROL_HANDLE (bar);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5179
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5180 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5181
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5182 /* 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
5183 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
5184 && 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
5185 && XINT (bar->width) == sb_width
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5186 && XINT (bar->height) == height))
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5187 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
5188 /* 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
5189 for them on the frame, we have to clear "under" them. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5190 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
5191
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5192 #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
5193 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
5194 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5195 HideControl (ch);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5196 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
5197 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
5198 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
5199 #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
5200 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
5201 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
5202 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5203
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5204 /* 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
5205 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
5206 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
5207 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
5208 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
5209 #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
5210 bar->track_top = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5211 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
5212 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
5213 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5214 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5215
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5216 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5217 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5218
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5219 #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
5220 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
5221 {
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
5222 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
5223 #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
5224 || 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
5225 #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
5226 )
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5227 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5228 XSETINT (bar->track_top, 0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5229 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
5230 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
5231 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5232 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5233 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5234 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5235 Rect r0, r1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5236
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5237 BLOCK_INPUT;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5238
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5239 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
5240 SetControl32BitMaximum (ch, 1 << 30);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5241 SetControlViewSize (ch, 1);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5242
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5243 /* 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
5244 SetControl32BitValue (ch, 0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5245 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
5246
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5247 /* 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
5248 SetControl32BitValue (ch, 1 << 30);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5249 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
5250
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5251 UnionRect (&r0, &r1, &r0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5252 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
5253 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
5254 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
5255
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5256 /* 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
5257 display the scroll bar thumb. */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5258 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
5259 ShowControl (ch);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5260
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5261 UNBLOCK_INPUT;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5262 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5263 }
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5264
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5265 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
5266 #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
5267 /* 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
5268 dragged. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5269 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
5270 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5271 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
5272
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5273 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
5274 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
5275 else
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 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
5278 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
5279 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
5280 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5281 }
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5282 #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
5283 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5286 /* 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
5287 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
5288 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
5289 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
5290 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
5291 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
5292 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
5293
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5294 /* 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
5295 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
5296 `*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
5297
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5298 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5299 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
5300 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
5301 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5302 /* 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
5303 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
5304 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5305 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
5306 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
5307 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
5308 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
5309 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
5310 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
5311 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
5312 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
5313 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5314 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5315
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5316
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5317 /* 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
5318 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
5319
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5320 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5321 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
5322 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
5323 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5324 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
5325 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
5326
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5327 /* 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
5328 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
5329 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5330
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5331 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
5332
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5333 /* 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
5334 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
5335 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
5336 {
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5337 /* 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
5338 the lists. */
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5339 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
5340 /* 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
5341 return;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5342 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
5343 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
5344 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
5345 else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5346 /* 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
5347 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
5348 abort ();
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5349 }
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5350 else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5351 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
5352
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5353 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
5354 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
5355
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5356 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
5357 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
5358 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
5359 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
5360 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
5361 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5362
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5363 /* 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
5364 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
5365
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5366 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5367 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
5368 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
5369 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5370 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
5371
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5372 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
5373
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5374 /* 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
5375 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
5376 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
5377
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5378 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
5379 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5380 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
5381
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5382 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
5383
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5384 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
5385 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
5386 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5387
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5388 /* 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
5389 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
5390 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5391
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5392
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5393 /* 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
5394 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
5395
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5396 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
5397 mark bits. */
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5400 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
5401 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
5402 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
5403 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
5404 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
5405 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5406 int win_y, top_range;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5407
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5408 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
5409 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5410
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 45197
diff changeset
5411 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
5412 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
5413 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
5414
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5415 bar->dragging = Qnil;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5416
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5417 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
5418 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5419 case kControlUpButtonPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5420 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
5421 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5422 case kControlDownButtonPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5423 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
5424 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5425 case kControlPageUpPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5426 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
5427 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5428 case kControlPageDownPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5429 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
5430 break;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5431 #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
5432 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5433 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5434 case kControlIndicatorPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5435 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5436 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
5437 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
5438 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
5439 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
5440 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5441 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5442
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5443 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
5444 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
5445
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5446 win_y -= VERTICAL_SCROLL_BAR_TOP_BORDER;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5447
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5448 win_y -= 24;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5449
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5450 if (! NILP (bar->dragging))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5451 win_y -= XINT (bar->dragging);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5452
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5453 if (win_y < 0)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5454 win_y = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5455 if (win_y > top_range)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5456 win_y = top_range;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5457
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5458 XSETINT (bufp->x, win_y);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5459 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
5460 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5461
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5462 #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
5463
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5464 /* 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
5465
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5466 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
5467 mark bits. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5468
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5469 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5470 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
5471 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
5472 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
5473 Time t;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5474 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5475 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
5476
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5477 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
5478
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5479 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
5480 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
5481
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5482 /* 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
5483 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
5484 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5485 /* 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
5486 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
5487
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5488 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
5489 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5490 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
5491
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5492 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
5493 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5494 }
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
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5497 #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
5498
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5499 /* 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
5500 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
5501
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5502 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5503 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
5504 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
5505 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
5506 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
5507 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
5508 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
5509 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5510 struct scroll_bar *bar = XSCROLL_BAR (last_mouse_scroll_bar);
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5511 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5512 #if TARGET_API_MAC_CARBON
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5513 WindowPtr wp = GetControlOwner (ch);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5514 #else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5515 WindowPtr wp = (*ch)->contrlOwner;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5516 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5517 Point mouse_pos;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5518 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
5519 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
5520
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5521 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
5522
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5523 GetMouse (&mouse_pos);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5524
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5525 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
5526 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
5527
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5528 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
5529
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5530 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
5531
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5532 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
5533 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
5534
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5535 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
5536 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
5537 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
5538 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
5539
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5540 *fp = f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5541 *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
5542
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5543 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
5544 *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
5545 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
5546 *part = scroll_bar_above_handle;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5547 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
5548 *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
5549 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5550 *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
5551
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5552 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
5553 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
5554
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5555 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
5556 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
5557
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5558 *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
5559 }
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5560
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5561
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5562 /* 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
5563 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
5564 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
5565 redraw them. */
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5566
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5567 void
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5568 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
5569 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
5570 {
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5571 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
5572 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
5573 }
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5574
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5575
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5576 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5577 Text Cursor
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5580 /* 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
5581 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
5582
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5583 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
5584 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
5585 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
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
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5588 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
5589 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
5590 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
5591 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
5592 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5593 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5594 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
5595 Rect clip_rect;
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5596 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
5597
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5598 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
5599
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5600 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
5601 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
5602 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
5603 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
5604 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
5605
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
5606 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
5607 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5608
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 /* 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
5611
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5612 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5613 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
5614 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
5615 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
5616 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5617 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
5618 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
5619 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
5620 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
5621 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5622 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
5623 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5624
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5625 /* 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
5626 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
5627 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
5628 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
5629 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5630
59748
1df465faf1df (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
Kim F. Storm <storm@cua.dk>
parents: 59718
diff changeset
5631 /* 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
5632 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
5633 wd = w->phys_cursor_width;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5634
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5635 /* 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
5636 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
5637 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
5638 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
5639 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
5640 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5641 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
5642 GCForeground, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5643 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
5644
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5645 /* 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
5646 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
5647 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
5648 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
5649 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5652 /* 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
5653
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5654 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
5655 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
5656 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
5657 --gerd. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5658
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5659 static void
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5660 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
5661 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
5662 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
5663 int width;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5664 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
5665 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5666 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
5667 struct glyph *cursor_glyph;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5668
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5669 /* 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
5670 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
5671 and mini-buffer. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5672 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
5673 if (cursor_glyph == NULL)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5674 return;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5675
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5676 /* 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
5677 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
5678 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
5679 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
5680 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5681 struct glyph_row *row;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5682 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
5683 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
5684 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5685 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5686 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5687 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
5688 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
5689 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
5690 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
5691 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
5692 XGCValues xgcv;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5693
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5694 /* 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
5695 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
5696 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
5697 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
5698 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
5699 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
5700 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
5701 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5702 xgcv.background = xgcv.foreground = f->output_data.mac->cursor_pixel;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5703
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5704 if (gc)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5705 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
5706 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5707 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5708 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
5709 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
5710 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5711
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5712 if (width < 0)
47138
4a0541418bc5 (x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents: 47030
diff changeset
5713 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
5714 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
5715
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5716 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
5717 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
5718
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5719 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
5720 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
5721 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
5722 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
5723 width, row->height);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5724 else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5725 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
5726 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
5727 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
5728 row->height - width),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5729 cursor_glyph->pixel_width,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5730 width);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5731
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
5732 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
5733 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5734 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5735
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5736
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5737 /* 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
5738
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5739 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5740 mac_define_frame_cursor (f, cursor)
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5741 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5742 Cursor cursor;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5743 {
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
5744 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
5745
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
5746 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
5747 SetThemeCursor (cursor);
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5748 }
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5749
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5750
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5751 /* 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
5752
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5753 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5754 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
5755 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5756 int x, y, width, height;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5757 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5758 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
5759 }
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5760
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5761
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5762 /* RIF: Draw cursor on window W. */
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5763
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5764 static void
50243
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5765 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
5766 struct window *w;
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5767 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
5768 int x, y;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5769 int cursor_type, cursor_width;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5770 int on_p, active_p;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5771 {
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5772 if (on_p)
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5773 {
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5774 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
5775 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
5776
53606
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
5777 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
5778 && 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
5779 {
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
5780 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
5781 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
5782 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5783 else
50243
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5784 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
5785 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5786 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
5787 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
5788 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5789
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5790 case FILLED_BOX_CURSOR:
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5791 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
5792 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5793
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5794 case BAR_CURSOR:
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5795 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
5796 break;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5797
47138
4a0541418bc5 (x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents: 47030
diff changeset
5798 case HBAR_CURSOR:
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5799 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
5800 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5801
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5802 case NO_CURSOR:
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5803 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
5804 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5805
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5806 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5807 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5808 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5809 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5810 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5811
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5812
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5813 /* Icons. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5814
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5815 #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
5816 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5817 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
5818 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
5819 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
5820 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5821 HANDLE hicon;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5822
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5823 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
5824 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5825
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5826 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
5827 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
5828 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
5829 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
5830 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
5831 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
5832 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5833 LPCTSTR name;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5834
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5835 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
5836 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
5837 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
5838 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
5839 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
5840 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
5841 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
5842 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
5843 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
5844 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
5845 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
5846 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
5847 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5848 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5849
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5850 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
5851 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5852 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5853 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5854
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5855 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
5856 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5857
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5858 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
5859 (LPARAM) hicon);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5860
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5861 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5862 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5863 #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
5864
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5865 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5866 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
5867 ************************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5868
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5869 /* 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
5870 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
5871
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5872 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
5873 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
5874 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
5875 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
5876 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
5877 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
5878 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
5879 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
5880 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
5881 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
5882 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
5883 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
5884 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
5885
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5886 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5887
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5888
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5889 /* 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
5890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5891 /* 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
5892 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
5893 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
5894 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
5895
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5896 Lisp_Object
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5897 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
5898 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
5899 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
5900 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5901 struct font_info *fontp
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5902 = FS_LOAD_FONT (f, fontname);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5903
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5904 if (!fontp)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5905 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5906
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5907 if (FRAME_FONT (f) == (XFontStruct *) (fontp->font))
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5908 /* This font is already set in frame F. There's nothing more to
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5909 do. */
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5910 return build_string (fontp->full_name);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5911
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5912 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
5913 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
5914 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
5915
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
5916 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
5917 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
5918 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
5919
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5920 compute_fringe_widths (f, 1);
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5921
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5922 /* 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
5923 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
5924 {
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5925 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
5926 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
5927 = (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
5928 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5929 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5930 {
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5931 int wid = FRAME_COLUMN_WIDTH (f);
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5932 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
5933 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5934
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5935 /* 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
5936 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
5937 {
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
5938 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
5939 FRAME_FONT (f));
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
5940 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
5941 FRAME_FONT (f));
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
5942 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
5943 FRAME_FONT (f));
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5944
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5945 /* 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
5946 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
5947 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
5948 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
5949 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
5950 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5951
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5952 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
5953 }
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5954
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5955 /* Give frame F the fontset named FONTSETNAME as its default fontset,
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5956 and return the full name of that fontset. FONTSETNAME may be a
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5957 wildcard pattern; in that case, we choose some fontset that fits
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5958 the pattern. FONTSETNAME may be a font name for ASCII characters;
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5959 in that case, we create a fontset from that font name.
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5960
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5961 The return value shows which fontset we chose.
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5962 If FONTSETNAME specifies the default fontset, return Qt.
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5963 If an ASCII font in the specified fontset can't be loaded, return
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
5964 Qnil. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5965
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5966 Lisp_Object
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5967 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
5968 struct frame *f;
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5969 Lisp_Object fontsetname;
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5970 {
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5971 int fontset = fs_query_fontset (fontsetname, 0);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5972 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
5973
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5974 if (fontset > 0 && FRAME_FONTSET(f) == fontset)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5975 /* 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
5976 to do. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5977 return fontset_name (fontset);
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5978 else if (fontset == 0)
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5979 /* The default fontset can't be the default font. */
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5980 return Qt;
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5981
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5982 if (fontset > 0)
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5983 result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5984 else
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5985 result = x_new_font (f, SDATA (fontsetname));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5986
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5987 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
5988 /* 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
5989 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5990
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5991 if (fontset < 0)
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5992 fontset = new_fontset_from_font_name (result);
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5993
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5994 /* 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
5995 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
5996
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
5997 return fontset_name (fontset);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5998 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5999
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6000
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6001 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6002 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
6003 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6004 /* 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
6005
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6006 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
6007 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
6008 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
6009 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
6010 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
6011 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
6012
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6013 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6014
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6015
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6016 void
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6017 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
6018 struct frame *f;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6019 Rect *inner, *outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6020 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6021 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6022 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
6023 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
6024 #else /* not TARGET_API_MAC_CARBON */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6025 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
6026
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6027 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
6028 *inner = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6029 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
6030 *outer = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6031 DisposeRgn (region);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6032 #endif /* not TARGET_API_MAC_CARBON */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6033 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6034
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6035 static void
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6036 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
6037 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
6038 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6039 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
6040 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6041
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6042 static void
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6043 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
6044 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
6045 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
6046 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6047 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
6048
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6049 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
6050 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
6051
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6052 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
6053 || 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
6054 || 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
6055 || 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
6056 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6057 /* 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
6058 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
6059 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
6060 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
6061 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
6062 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
6063
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6064 /* 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
6065 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
6066
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6067 /* 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
6068 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
6069 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
6070 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
6071 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
6072 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
6073
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6074 #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
6075 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
6076 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6077 #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
6078 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
6079 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6080 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
6081 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
6082 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6083 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6084 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6085 }
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6086
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
6087
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6088 /* 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
6089 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
6090
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6091 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6092 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
6093 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
6094 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6095 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
6096 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
6097 Rect inner, outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6098
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6099 /* 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
6100 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
6101 if (! ((flags & XNegative) || (flags & YNegative)))
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6102 return;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6103
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6104 /* 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
6105 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
6106 BLOCK_INPUT;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6107 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
6108 UNBLOCK_INPUT;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6109
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6110 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
6111 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
6112
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6113 /* 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
6114 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
6115 if (flags & XNegative)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6116 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
6117 - width_diff
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6118 - FRAME_PIXEL_WIDTH (f)
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6119 + f->left_pos);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6120
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6121 if (flags & YNegative)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6122 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
6123 - height_diff
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6124 - FRAME_PIXEL_HEIGHT (f)
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6125 + f->top_pos);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6126
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6127 /* 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
6128 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
6129 so the flags should correspond. */
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6130 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
6131 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6132
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6133 /* 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
6134 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
6135 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
6136 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
6137 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
6138
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6139 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6140 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
6141 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
6142 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
6143 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
6144 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6145 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
6146 {
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6147 f->top_pos = yoff;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6148 f->left_pos = xoff;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6149 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
6150 if (xoff < 0)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6151 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
6152 if (yoff < 0)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6153 f->size_hint_flags |= YNegative;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6154 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
6155 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6156 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
6157
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6158 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6159 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
6160
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6161 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6162 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
6163 /* 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
6164 position. */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6165 ConstrainWindowToScreen (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn,
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6166 kWindowConstrainMoveRegardlessOfFit
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6167 | 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
6168 #if USE_CARBON_EVENTS
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6169 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
6170 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6171 mac_handle_origin_change (f);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6172 #else
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6173 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6174 Rect inner, outer, screen_rect, dummy;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6175 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
6176
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6177 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
6178 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
6179 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
6180 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
6181 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
6182
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6183 /* 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
6184 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
6185 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
6186 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
6187 strict. */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6188 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
6189 outer = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6190 DisposeRgn (region);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6191 inner = outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6192 InsetRect (&inner, 8, 8);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6193 screen_rect = qd.screenBits.bounds;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6194 screen_rect.top += GetMBarHeight ();
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6195
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6196 if (!SectRect (&inner, &screen_rect, &dummy))
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6197 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6198 if (inner.right <= screen_rect.left)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6199 f->left_pos = screen_rect.left;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6200 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
6201 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
6202
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6203 if (inner.bottom <= screen_rect.top)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6204 f->top_pos = screen_rect.top;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6205 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
6206 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
6207
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6208 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
6209 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
6210 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6211 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6212 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6213
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6214 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6215 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6216
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6217 /* 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
6218 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
6219 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
6220 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
6221
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6222 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6223 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
6224 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
6225 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
6226 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
6227 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6228 int pixelwidth, pixelheight;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6229
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6230 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6231
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6232 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
6233 f->scroll_bar_actual_width
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6234 = 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
6235
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
6236 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
6237
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6238 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
6239 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
6240
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6241 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
6242 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
6243
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6244 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
6245
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6246 #if USE_CARBON_EVENTS
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6247 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
6248 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6249 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
6250
76331
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6251 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
6252 != 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
6253 {
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6254 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
6255 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
6256 = 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
6257 }
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6258
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
6259 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
6260
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6261 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6262 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6263
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6264 /* Mouse warping. */
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 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
6267
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6268 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6269 x_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
6270 struct frame *f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6271 int x, y;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6272 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6273 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
6274
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6275 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
6276 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
6277
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6278 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
6279 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
6280
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6281 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
6282 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
6283
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6284 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
6285 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6286
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6287 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6288 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
6289 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
6290 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
6291 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6292 #ifdef MAC_OSX
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6293 Point p;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6294 CGPoint point;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6295
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6296 BLOCK_INPUT;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6297 SetPortWindowPort (FRAME_MAC_WINDOW (f));
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6298 p.h = pix_x;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6299 p.v = pix_y;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6300 LocalToGlobal (&p);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6301 point.x = p.h;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6302 point.y = p.v;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6303 CGWarpMouseCursorPosition (point);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6304 UNBLOCK_INPUT;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6305 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6306 #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
6307 BLOCK_INPUT;
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 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
6310 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
6311 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6312 #endif
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6313 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6314 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6315
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6316 /* 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
6317
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6318 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6319 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
6320 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
6321 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6322 #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
6323 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
6324 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6325 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6326 /* 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
6327 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
6328 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
6329 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
6330 RevertToPointerRoot, CurrentTime);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6331 #endif /* ! 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6332 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6333
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6334 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6335 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
6336 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
6337 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6338 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6339
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6340 /* 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
6341
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6342 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6343 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
6344 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
6345 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6346 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
6347 {
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6348 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
6349 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
6350 UNBLOCK_INPUT;
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6351 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6352 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6353
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6354 /* 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
6355
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6356 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6357 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
6358 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
6359 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6360 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
6361 {
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6362 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
6363 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
6364 UNBLOCK_INPUT;
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6365 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6366 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6367
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6368 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6369 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
6370 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
6371 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
6372 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6373 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
6374 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
6375 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6376 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
6377 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6378
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6379 /* 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
6380
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
6381 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
6382 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
6383 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
6384 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6385 WindowPtr wp = FRAME_MAC_WINDOW (f);
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6386 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
6387 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
6388
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6389 if (IsWindowVisible (wp))
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6390 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6391 if (IsWindowCollapsed (wp))
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6392 iconified = 1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6393 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6394 visible = 1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6395 }
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
6396
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6397 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
6398 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6399 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
6400 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6401 /* 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
6402 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
6403 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
6404 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
6405 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
6406
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6407 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
6408 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
6409 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
6410 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
6411 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
6412 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6413 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
6414 /* 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
6415 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
6416 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
6417 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6418 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
6419 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
6420 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6421 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
6422 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
6423 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
6424 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
6425 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
6426 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6427
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6428 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
6429 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
6430 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6431
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6432 /* 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
6433 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
6434 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
6435 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
6436 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
6437 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
6438
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6439 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6440 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
6441 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
6442 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6443 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6444
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6445 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
6446 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6447 /* 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
6448 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
6449 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
6450 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
6451 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
6452 && ! f->output_data.mac->asked_for_visible)
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6453 {
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
6454 #if TARGET_API_MAC_CARBON
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6455 if (!(FRAME_SIZE_HINTS (f)->flags & (USPosition | PPosition)))
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6456 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6457 struct frame *sf = SELECTED_FRAME ();
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6458 if (!FRAME_MAC_P (sf))
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6459 RepositionWindow (FRAME_MAC_WINDOW (f), NULL,
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6460 kWindowCenterOnMainScreen);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6461 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6462 RepositionWindow (FRAME_MAC_WINDOW (f),
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6463 FRAME_MAC_WINDOW (sf),
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
6464 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6465 kWindowCascadeStartAtParentWindowScreen
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
6466 #else
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6467 kWindowCascadeOnParentWindowScreen
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6468 #endif
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6469 );
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6470 #if USE_CARBON_EVENTS
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6471 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
6472 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6473 mac_handle_origin_change (f);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6474 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6475 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6476 #endif
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6477 x_set_offset (f, f->left_pos, f->top_pos, 0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6478 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6479
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6480 f->output_data.mac->asked_for_visible = 1;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6481
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
6482 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
6483 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
6484 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6485
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6486 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
6487
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6488 /* 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
6489 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
6490 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
6491 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6492 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
6493 int count;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6494
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6495 /* 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
6496 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6497
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6498 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
6499
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6500 /* 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
6501 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
6502 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
6503 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
6504 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
6505 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6506 /* 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
6507 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
6508
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6509 /* 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
6510 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
6511 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
6512 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
6513 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
6514 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
6515 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
6516 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6517 /* 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
6518 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
6519 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
6520 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
6521 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
6522 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
6523 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
6524 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
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 /* 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
6528 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
6529 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6530 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6531 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6532
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6533 /* 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
6534
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6535 /* 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
6536
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6537 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6538 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
6539 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
6540 {
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
6541 /* 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
6542 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
6543 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
6544 #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
6545 /* 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
6546 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
6547 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
6548 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6549
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6550 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6551
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
6552 /* 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
6553 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
6554 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
6555 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
6556 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
6557 x_wm_set_size_hint (f, (long) 0, 1);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
6558
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6559 HideWindow (FRAME_MAC_WINDOW (f));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6560
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6561 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
6562
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6563 #if !USE_CARBON_EVENTS
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6564 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
6565 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6566 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6567
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6568 /* 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
6569
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6570 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6571 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
6572 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
6573 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
6574 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
6575
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6576 /* 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
6577 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
6578 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
6579 #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
6580 /* Don't keep the highlight on an invisible frame. */
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
6581 if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
6582 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
6583 #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
6584
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6585 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
6586 return;
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 BLOCK_INPUT;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
6589
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
6590 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
6591
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6592 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
6593 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
6594
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6595 err = CollapseWindow (FRAME_MAC_WINDOW (f), true);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6596
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6597 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
6598
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6599 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
6600 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
6601
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6602 #if !USE_CARBON_EVENTS
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6603 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
6604 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6605 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6606
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6607
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6608 /* 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
6609
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6610 void
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6611 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
6612 struct frame *f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6613 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6614 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6615 WindowPtr wp = FRAME_MAC_WINDOW (f);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6616
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6617 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6618
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
6619 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
6620 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
6621
75200
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
6622 #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
6623 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
6624 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6625 DisposeWindow (wp);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6626 if (wp == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6627 /* Neither WaitNextEvent nor ReceiveNextEvent receives `window
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6628 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
6629 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
6630
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6631 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
6632
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6633 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
6634 free_frame_faces (f);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6635
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6636 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
6637
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6638 if (FRAME_SIZE_HINTS (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6639 xfree (FRAME_SIZE_HINTS (f));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6640
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6641 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
6642 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
6643
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6644 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
6645 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
6646 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
6647 #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
6648 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
6649 #endif
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
6650 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6651 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
6652 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
6653 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
6654 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
6655
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6656 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
6657 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6658 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
6659 = 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
6660 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
6661 = 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
6662 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
6663 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
6664 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
6665 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6666
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6667 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6668 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6669
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6670
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6671 /* 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
6672
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6673 void
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6674 x_destroy_window (f)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6675 struct frame *f;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6676 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6677 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
6678
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6679 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
6680
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6681 dpyinfo->reference_count--;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6682 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6683
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6684
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6685 /* 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
6686
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6687 /* 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
6688 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
6689 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
6690 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
6691 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
6692 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6693 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
6694 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
6695 long flags;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6696 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
6697 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6698 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
6699 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
6700 XSizeHints *size_hints;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6701
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6702 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
6703 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
6704 width_inc = FRAME_COLUMN_WIDTH (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6705 height_inc = FRAME_LINE_HEIGHT (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6706
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6707 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
6708
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6709 size_hints = FRAME_SIZE_HINTS (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6710 if (size_hints == NULL)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6711 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6712 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
6713 bzero (size_hints, sizeof (XSizeHints));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6714 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6715
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6716 size_hints->flags |= PResizeInc | PMinSize | PBaseSize ;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6717 size_hints->width_inc = width_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6718 size_hints->height_inc = height_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6719 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
6720 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
6721 size_hints->base_width = base_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6722 size_hints->base_height = base_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6723
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6724 if (flags)
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6725 size_hints->flags = flags;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6726 else if (user_position)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6727 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6728 size_hints->flags &= ~ PPosition;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6729 size_hints->flags |= USPosition;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6730 }
44890
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6733 #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
6734 /* 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
6735
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6736 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6737 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
6738 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
6739 int state;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6740 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6741 #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
6742 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
6743
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6744 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
6745 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
6746 #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
6747 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
6748
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6749 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
6750 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
6751
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6752 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
6753 #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
6754 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6755
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6756 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6757 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
6758 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
6759 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
6760 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6761 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
6762
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6763 #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
6764 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
6765 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6766
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6767 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
6768 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6769 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
6770 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
6771 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6772 else
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 /* 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
6775 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
6776 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
6777 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
6778 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
6779 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
6780 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
6781 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6782 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
6783 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6784 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6785 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6786 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6787
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6788 #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
6789
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6790 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6791 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
6792 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
6793 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
6794 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6795
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6796 #else /* not USE_X_TOOLKIT */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6797
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6798 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
6799 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
6800
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6801 #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
6802 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6803
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6804 #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
6805
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6806 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6807 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
6808 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
6809 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
6810 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6811 #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
6812 #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
6813 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
6814 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6815 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
6816 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6817
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6818 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
6819 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
6820 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
6821
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6822 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
6823 #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
6824 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6825
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6826
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6827 /***********************************************************************
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6828 XLFD Pattern Match
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6829 ***********************************************************************/
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6830
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6831 /* 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
6832 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
6833 struct xlfdpat_block
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6834 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6835 /* 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
6836 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
6837 int len;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6838
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6839 /* 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
6840 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
6841 sentinel. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6842 unsigned char *pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6843
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6844 /* 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
6845 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
6846
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6847 /* 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
6848 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
6849 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
6850 int skip[256];
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6851
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6852 /* 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
6853 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
6854 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
6855 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
6856 };
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6857
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6858 struct xlfdpat
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6859 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6860 /* 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
6861 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
6862 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
6863 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
6864 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
6865 unsigned char *buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6866
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6867 /* 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
6868 normalized pattern string. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6869 int nchars;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6870
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6871 /* 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
6872 int trailing_anychars;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6873
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6874 /* 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
6875 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
6876 int nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6877 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
6878 };
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6879
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6880 static void
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6881 xlfdpat_destroy (pat)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6882 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6883 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6884 if (pat)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6885 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6886 if (pat->buf)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6887 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6888 if (pat->blocks)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6889 xfree (pat->blocks);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6890 xfree (pat->buf);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6891 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6892 xfree (pat);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6893 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6894 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6895
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6896 static struct xlfdpat *
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6897 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
6898 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
6899 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6900 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6901 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
6902 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
6903 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
6904 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
6905
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6906 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
6907 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
6908
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6909 /* 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
6910 nblocks = 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6911 anychar_head = NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6912 q = pat->buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6913 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
6914 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
6915 {
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
6916 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
6917
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6918 if (c == '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6919 if (last_char == '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6920 /* ...a** -> ...a* */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6921 continue;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6922 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6923 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6924 if (last_char == '?')
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6925 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6926 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
6927 /* ...*??* -> ...*?? */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6928 continue;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6929 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6930 /* ...a??* -> ...a*?? */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6931 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6932 *anychar_head++ = '*';
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6933 c = '?';
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6934 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6935 }
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6936 nblocks++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6937 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6938 else if (c == '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6939 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6940 if (last_char != '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6941 anychar_head = q;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6942 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6943 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6944 /* 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
6945 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
6946 if (isascii (c))
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6947 c = tolower (c);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6948
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6949 *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
6950 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6951 *q = '\0';
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6952 nblocks++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6953 pat->nblocks = nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6954 if (last_char != '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6955 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
6956 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6957 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6958 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
6959 q = anychar_head;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6960 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6961 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
6962
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6963 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
6964 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6965 /* 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
6966 pat->blocks = NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6967 return pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6968 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6969
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6970 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
6971
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6972 /* 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
6973 p = pat->buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6974 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
6975 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6976 blk->pattern = p;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6977 while (*p != '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6978 p++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6979 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
6980 p++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6981 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6982 blk->pattern = p;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6983 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
6984
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6985 /* 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
6986 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
6987 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
6988 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6989 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
6990 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
6991
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6992 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
6993 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
6994 break;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6995
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6996 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
6997 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
6998
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6999 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
7000 while (--skip > 0)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7001 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
7002
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7003 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
7004 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7005
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7006 return pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7007 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7008
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7009 static INLINE int
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7010 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
7011 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7012 {
65643
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7013 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
7014 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7015
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7016 /* 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
7017 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
7018 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
7019
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7020 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
7021 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
7022 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
7023 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
7024 int start_max;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7025 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7026 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
7027 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
7028 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
7029
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7030 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
7031 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
7032 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
7033
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7034 /* 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
7035 use of `infinity'. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7036 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
7037 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
7038
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7039 start = 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7040 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7041 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7042 /* 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
7043 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
7044 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7045 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7046 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
7047 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7048 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
7049
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7050 if (start < infinity)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7051 /* 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
7052 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7053
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7054 /* 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
7055 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
7056 start -= infinity;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7057
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7058 /* 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
7059 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
7060 p = blk->pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7061 s = string + start;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7062 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7063 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7064 while (*p++ == *s++)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7065 ;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7066 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7067 while (*(p - 1) == '?');
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7068
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7069 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
7070 /* Matched. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7071 return string + start;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7072
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7073 /* Didn't match. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7074 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
7075 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7076 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
7077
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7078 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7079 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7080
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7081 #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
7082 ((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
7083 : 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
7084
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7085 /* 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
7086 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
7087
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7088 static int
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7089 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
7090 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
7091 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
7092 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7093 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
7094 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
7095 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
7096
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7097 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
7098
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7099 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
7100 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
7101
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7102 /* 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
7103 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
7104 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
7105 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
7106 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7107
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7108 /* 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
7109 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
7110
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7111 /* 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
7112 of the string. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7113 nblocks = pat->nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7114 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
7115 if (nblocks == 1)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7116 /* 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
7117 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
7118 && (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
7119 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
7120 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
7121 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7122
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7123 /* 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
7124 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
7125 blk = pat->blocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7126 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
7127 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7128 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
7129 if (s == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7130 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7131 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
7132 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7133
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7134 /* 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
7135 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
7136 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
7137 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7138 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
7139 if (s == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7140 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7141 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
7142 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
7143 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7144
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7145 return 1;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7146 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7147
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7148
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7149 /***********************************************************************
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7150 Fonts
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7151 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7152
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7153 /* 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
7154
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7155 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
7156 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
7157 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
7158 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
7159 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7160 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
7161 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7162
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7163 /* 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
7164 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
7165 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
7166 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
7167
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7168 /* 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
7169 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
7170 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
7171 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
7172 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
7173 #if USE_ATSUI
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7174 /* 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
7175 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
7176 /* 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
7177 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
7178 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
7179 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7180
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7181 /* 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
7182 coding system. */
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7183 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
7184
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7185 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
7186 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
7187 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7188 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
7189
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7190 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
7191 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7192 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
7193 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
7194 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
7195
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7196 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
7197 && (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
7198 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
7199 && 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
7200 && (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
7201 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
7202 && 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
7203 && (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
7204 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
7205 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7206
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7207 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
7208 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
7209 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
7210 result);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7211 else
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7212 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
7213 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
7214 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
7215 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7216
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7217 return result;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7218 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7219
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7220
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7221 static void
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7222 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
7223 char *name;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7224 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
7225 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
7226 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7227 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
7228 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
7229
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7230 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
7231 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7232 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
7233 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
7234 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7235
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7236 if (*p)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7237 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7238 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
7239 coding.src_multibyte = 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7240 coding.dst_multibyte = 1;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7241 coding.mode |= CODING_MODE_LAST_BLOCK;
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7242 coding.dst_bytes = size;
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7243 coding.destination = (unsigned char *) alloca (coding.dst_bytes);
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7244
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7245 decode_coding_c_string (&coding, name, strlen (name), Qnil);
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7246 bcopy (coding.destination, name, min (coding.produced, size));
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
7247 name[min (coding.produced, size)] = '\0';
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7248 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7249 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7250
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7251 /* 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
7252 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
7253 "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
7254 p = strchr (name, '-');
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7255 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
7256 *p = '_';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7257
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7258 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
7259 /* 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
7260 for some locales. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7261 if (isascii (*p))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7262 *p = tolower (*p);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7263 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7264
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 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
7267 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
7268 const char *name;
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7269 int size;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7270 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
7271 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
7272 {
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7273 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
7274 Str255 family;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7275 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
7276 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
7277
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7278 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
7279 charset = cs;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7280 else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7281 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7282 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
7283 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
7284 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7285
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7286 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
7287 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
7288 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
7289
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7290 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
7291 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
7292 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
7293 /* 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
7294 for some locales. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7295 if (isascii (*p))
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7296 *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
7297 return result;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7298 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7299
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7300
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7301 /* 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
7302 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
7303 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
7304 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
7305 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
7306 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
7307 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
7308 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
7309 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
7310
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7311 const int kDefaultFontSize = 12;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7312
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7313 static int
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7314 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
7315 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
7316 char *family;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7317 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
7318 Style *style;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7319 char *charset;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7320 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7321 Str31 foundry, weight;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7322 int point_size, avgwidth;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7323 char slant[2], *p;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7324
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7325 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
7326 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
7327 &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
7328 && 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
7329 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
7330 &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
7331 return 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7332
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7333 if (*size == 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7334 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7335 if (point_size > 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7336 *size = point_size / 10;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7337 else if (avgwidth > 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7338 *size = avgwidth / 10;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7339 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7340 if (*size == 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7341 *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
7342
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7343 *style = normal;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7344 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
7345 *style |= bold;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7346 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
7347 *style |= italic;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7348
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7349 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
7350 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7351 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
7352
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7353 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
7354 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7355 /* 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
7356 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
7357 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
7358 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
7359 family[foundry_len] = '-';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7360 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
7361 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
7362 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7363 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7364 return 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7365 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7366
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7367 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
7368 /* 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
7369 for some locales. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7370 if (isascii (*p))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7371 *p = tolower (*p);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7372
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7373 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
7374 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7375
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7376
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7377 static void
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7378 add_font_name_table_entry (char *font_name)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7379 {
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7380 if (font_name_table_size == 0)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7381 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7382 font_name_table_size = 256;
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7383 font_name_table = (char **)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7384 xmalloc (font_name_table_size * sizeof (char *));
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7385 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7386 else if (font_name_count + 1 >= font_name_table_size)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7387 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7388 font_name_table_size *= 2;
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7389 font_name_table = (char **)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7390 xrealloc (font_name_table,
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7391 font_name_table_size * sizeof (char *));
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7392 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7393
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7394 font_name_table[font_name_count++] = font_name;
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7395 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7396
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
7397 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
7398 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
7399 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
7400 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
7401 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
7402 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
7403 {
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
7404 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
7405 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
7406 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
7407 {
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
7408 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
7409 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
7410 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
7411 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
7412 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
7413 }
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
7414 }
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
7415
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7416 #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
7417 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
7418 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
7419 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
7420 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7421 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
7422 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
7423 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
7424 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
7425 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
7426 #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
7427
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7428 /* 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
7429 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
7430 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
7431 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
7432 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
7433 && 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
7434 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
7435 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7436 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
7437
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7438 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
7439 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7440
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7441 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
7442 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
7443 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
7444 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7445 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
7446 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
7447 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
7448 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
7449 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
7450
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7451 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
7452 &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
7453 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
7454 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
7455
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7456 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
7457 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
7458 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
7459
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7460 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
7461 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
7462 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
7463 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
7464 && (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
7465 do
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7466 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7467 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
7468 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
7469 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7470 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
7471 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
7472 break;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7473 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7474 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
7475 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7476 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
7477 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7478 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
7479
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7480 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
7481 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
7482 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7483
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7484 static Lisp_Object
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7485 fm_style_to_face_attributes (fm_style)
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7486 FMFontStyle fm_style;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7487 {
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7488 Lisp_Object tem;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7489
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7490 fm_style &= (bold | italic);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7491 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
7492 fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7493 if (!NILP (tem))
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7494 return XCDR (tem);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7495
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7496 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
7497 QCslant, fm_style & italic ? Qitalic : Qnormal);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7498 fm_style_face_attributes_alist =
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7499 Fcons (Fcons (make_number (fm_style), tem),
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7500 fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7501
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7502 return tem;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7503 }
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7504
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7505 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
7506 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
7507 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
7508 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7509 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
7510 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
7511 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
7512
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7513 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
7514 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
7515 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
7516 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
7517 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7518 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
7519 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
7520 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
7521 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
7522 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
7523 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7524 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
7525 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
7526
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7527 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
7528 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7529
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7530 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
7531 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
7532 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
7533 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7534 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
7535
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7536 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
7537 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
7538 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
7539 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
7540 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
7541 }
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7542 #endif
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7543
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7544 /* 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
7545 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
7546 Manager need not be accessed every time this information is
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7547 needed. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7548
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7549 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7550 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
7551 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7552 #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
7553 FMFontFamilyIterator ffi;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7554 FMFontFamilyInstanceIterator ffii;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7555 FMFontFamily ff;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7556 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
7557 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
7558
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7559 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
7560
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7561 #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
7562 #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
7563 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
7564 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7565 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
7566 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
7567 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
7568 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
7569 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
7570 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
7571 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
7572 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
7573 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
7574 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
7575
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7576 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
7577 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
7578 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
7579 make_float (DEFAULT_REHASH_THRESHOLD),
81083
223bb8e66f74 * xfaces.c (syms_of_xfaces): Delete stray semicolon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 77795
diff changeset
7580 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
7581 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
7582
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7583 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
7584 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
7585 {
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
7586 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
7587 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
7588 }
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7589 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
7590 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
7591 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7592 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
7593
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7594 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
7595 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
7596 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
7597 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
7598 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
7599 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7600 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
7601 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
7602 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7603 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
7604 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
7605 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
7606 }
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7607 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
7608 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
7609 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
7610 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
7611 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7612 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
7613 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
7614 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7615 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7616
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7617 /* 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
7618 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
7619 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
7620 return;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7621 /* 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
7622 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
7623 != noErr)
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7624 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7625 FMDisposeFontFamilyInstanceIterator (&ffii);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7626 return;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7627 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7628
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7629 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
7630
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7631 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
7632 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7633 Str255 name;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7634 FMFont font;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7635 FMFontStyle style;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7636 FMFontSize size;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7637 TextEncoding encoding;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7638 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
7639 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
7640
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7641 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
7642 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7643 p2cstr (name);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7644 if (*name == '.')
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7645 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7646
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7647 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
7648 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7649 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
7650 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
7651 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
7652 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
7653 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
7654 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
7655 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
7656 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
7657 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
7658 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
7659 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
7660 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
7661 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
7662
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7663 /* 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
7664 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
7665 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7666
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7667 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
7668 == noErr)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7669 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7670 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
7671
65643
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7672 if (size > 0 || style == normal)
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7673 for (; !NILP (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
7674 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
7675 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7676 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7677
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7678 UNGCPRO;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7679
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7680 /* 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
7681 FMDisposeFontFamilyIterator (&ffi);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7682 FMDisposeFontFamilyInstanceIterator (&ffii);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7683 #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
7684 GrafPtr port;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7685 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
7686 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
7687 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
7688 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
7689 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
7690 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
7691 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
7692 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
7693 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
7694 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
7695 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
7696
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7697 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
7698 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
7699
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7700 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
7701
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7702 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
7703
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7704 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
7705 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7706 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
7707 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
7708 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7709
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7710 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
7711 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
7712 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
7713 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
7714 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7715
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7716 TextFont (fontnum);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7717 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
7718 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
7719 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
7720 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
7721 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
7722 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
7723 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
7724 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
7725 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
7726 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
7727 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
7728 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
7729 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
7730 do
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7731 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7732 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
7733
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7734 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
7735 >= 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
7736 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7737 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
7738 + 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
7739 assc_entry
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7740 = (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
7741 + 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
7742 + 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
7743
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7744 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
7745 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7746 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
7747
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7748 for (; !NILP (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
7749 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
7750 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
7751 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
7752 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7753 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7754
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7755 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
7756 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
7757 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
7758 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
7759 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7760 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
7761 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7762
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7763 UNGCPRO;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7764
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7765 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
7766 #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
7767 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7768
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7769
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7770 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7771 mac_clear_font_name_table ()
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7772 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7773 int i;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7774
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7775 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
7776 xfree (font_name_table[i]);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7777 xfree (font_name_table);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7778 font_name_table = NULL;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7779 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
7780 fm_font_family_alist = Qnil;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7781 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7782
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7783
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7784 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
7785 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7786 XLFD_SCL_PIXEL_SIZE,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7787 XLFD_SCL_POINT_SIZE,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7788 XLFD_SCL_AVGWIDTH,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7789 XLFD_SCL_LAST
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7790 };
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7791
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7792 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
7793 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7794 6, /* PIXEL_SIZE */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7795 7, /* POINT_SIZE */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7796 11, /* AVGWIDTH */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7797 -1
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7798 };
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7799
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7800 static Lisp_Object
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7801 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
7802 const char *pattern;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7803 int maxnames;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7804 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7805 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
7806 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
7807 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
7808 char *scaled;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7809 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
7810 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
7811 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
7812 int exact;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7813
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7814 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
7815 init_font_name_table ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7816
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7817 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
7818 scl_val[i] = -1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7819
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7820 /* 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
7821 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
7822 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
7823 ptr = pattern;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7824 i = 0;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7825 field = xlfd_scalable_fields;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7826 val = scl_val;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7827 if (*ptr == '-')
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7828 do
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7829 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7830 ptr++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7831 if (i == *field)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7832 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7833 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
7834 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7835 *val = *ptr++ - '0';
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7836 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
7837 *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
7838 if (*ptr != '-')
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7839 *val = -1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7840 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7841 field++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7842 val++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7843 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7844 ptr = strchr (ptr, '-');
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7845 i++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7846 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7847 while (ptr && i < 14);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7848
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7849 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
7850 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7851 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
7852 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
7853 (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
7854 : (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
7855 : -1));
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7856 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
7857 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
7858 (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
7859 : (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
7860 : -1));
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7861 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
7862 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
7863 (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
7864 : (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
7865 : -1));
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7866 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7867 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7868 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
7869
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7870 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
7871 if (pat == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7872 return Qnil;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7873
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7874 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
7875
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7876 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
7877 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7878 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
7879 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7880 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
7881 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
7882 break;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7883 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7884 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
7885 && (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
7886 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7887 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
7888
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7889 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
7890 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
7891 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
7892 "-%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
7893 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
7894 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
7895 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
7896 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
7897
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7898 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
7899 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7900 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
7901 xfree (scaled);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7902 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
7903 break;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7904 }
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7905 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7906 xfree (scaled);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7907 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7908 }
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
7909
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7910 xlfdpat_destroy (pat);
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
7911
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7912 return font_list;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7913 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7914
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7915 /* 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
7916
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7917 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
7918 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
7919 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
7920
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7921 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
7922 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
7923 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
7924 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
7925 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
7926 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7927 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
7928 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
7929 = 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
7930
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7931 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
7932
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7933 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
7934 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
7935 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
7936
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7937 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
7938 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7939 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
7940
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7941 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
7942 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7943
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
7944 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
7945 key = Fcons (pattern, make_number (maxnames));
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
7946
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7947 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
7948 if (!NILP (list))
46169
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
7949 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7950 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
7951 /* 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
7952 goto label_cached;
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
7953 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7954
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7955 BLOCK_INPUT;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7956 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
7957 UNBLOCK_INPUT;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7958
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7959 /* 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
7960
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7961 /* 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
7962 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
7963 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
7964 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
7965
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7966 label_cached:
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7967 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
7968 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7969
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7970 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
7971 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7972
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7973
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7974 #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
7975
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7976 /* 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
7977 font table. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7978
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7979 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7980 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
7981 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
7982 XFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7983 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7984 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7985 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
7986
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7987 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
7988
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7989 for (i = 0; i < dpyinfo->n_fonts; i++)
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7990 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
7991 && 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
7992 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7993
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7994 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
7995 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7996
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7997 #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
7998
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7999 /* 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
8000 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
8001 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
8002 "-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
8003 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
8004
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8005 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
8006 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
8007 MacFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8008 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
8009 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8010 *h = FONT_HEIGHT (font);
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8011 *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
8012 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8013
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8014
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8015 /* 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
8016 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
8017 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
8018 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
8019 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
8020
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
8021 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
8022 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
8023 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
8024 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8025 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8026 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
8027 MacFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8028 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
8029 int old_height = dpyinfo->smallest_font_height;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8030
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8031 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
8032 dpyinfo->smallest_char_width = 100000;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8033
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8034 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
8035 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
8036 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8037 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
8038 int w, h;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8039
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8040 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
8041 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
8042 x_font_min_bounds (font, &w, &h);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8043
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8044 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
8045 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
8046 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8047
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8048 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
8049 && 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
8050
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8051 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
8052 || 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
8053 || 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
8054 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8055
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8056
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8057 /* 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
8058 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
8059
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8060 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
8061 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
8062 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
8063 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8064 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8065 char *q;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8066
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8067 if (*p != '-')
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8068 return 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8069
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8070 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
8071 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8072 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
8073 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
8074 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8075 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
8076 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8077 p = q;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8078 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8079
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8080 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
8081 return 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8082
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8083 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
8084 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8085
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8086 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8087 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8088
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8089
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
8090 /* 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
8091 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
8092 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
8093 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
8094 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
8095
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8096 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
8097 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
8098 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
8099 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
8100 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8101 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
8102 char *name;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8103 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
8104 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
8105 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
8106 #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
8107 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
8108 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
8109 #endif
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8110 Style fontface;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8111 #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
8112 TextEncoding encoding;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8113 int scriptcode;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8114 #else
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8115 short scriptcode;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8116 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8117 MacFontStruct *font;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8118 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
8119
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8120 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
8121 name = fontname;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8122 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8123 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8124 Lisp_Object matched_fonts;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8125
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8126 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
8127 if (NILP (matched_fonts))
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8128 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8129 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
8130 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8131
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8132 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
8133 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8134
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8135 #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
8136 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
8137 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8138 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
8139 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
8140 {kATSUFontTag, kATSUSizeTag,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8141 kATSUQDBoldfaceTag, kATSUQDItalicTag};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8142 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
8143 {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
8144 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
8145 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
8146 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
8147 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
8148 {&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
8149 &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
8150 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
8151 {kAllTypographicFeaturesType, kDiacriticsType};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8152 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
8153 {kAllTypeFeaturesOffSelector, kDecomposeDiacriticsSelector};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8154 FMFontStyle style;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
8155
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8156 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
8157 if (font_id == kATSUInvalidFontID)
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8158 return;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8159 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
8160 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
8161 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
8162 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
8163 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
8164 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8165 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
8166 types, selectors);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8167 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
8168 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8169 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
8170 tags, sizes, values);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8171 if (err != noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8172 return NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8173 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
8174 if (err != noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8175 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
8176 scriptcode = kTextEncodingMacUnicode;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8177 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8178 else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8179 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8180 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8181 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
8182
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8183 if (NILP (tmp))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8184 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8185 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
8186 #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
8187 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
8188 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8189 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
8190 #else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8191 scriptcode = FontToScript (fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8192 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8193 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8194
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8195 font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8196
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8197 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
8198 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
8199 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
8200 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
8201 #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
8202 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
8203 #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
8204 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
8205 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
8206 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8207 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8208
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8209 /* 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
8210 "*-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
8211 (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
8212 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
8213 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
8214 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
8215
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8216 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
8217
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8218 #if USE_ATSUI
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8219 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
8220 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8221 OSStatus err;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8222 UniChar c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8223
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8224 font->min_byte1 = 0;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8225 font->max_byte1 = 0xff;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8226 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
8227 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
8228
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8229 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
8230 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
8231 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
8232 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
8233
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
8234 #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
8235 if (fontnum != -1)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8236 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8237 FMFontStyle style;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8238 ATSFontRef ats_font;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8239
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8240 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
8241 &font_id, &style);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8242 /* 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
8243 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
8244 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8245 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
8246 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
8247 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8248 }
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
8249
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8250 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
8251 {
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8252 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
8253 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
8254 }
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
8255 #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
8256 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
8257 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
8258 &font->ascent, &font->descent,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8259 space_bounds,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8260 #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
8261 (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
8262 : NULL)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8263 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8264 NULL
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8265 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8266 );
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
8267 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
8268 || 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
8269 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8270 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
8271 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8272 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8273
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8274 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
8275 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
8276 {
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
8277 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
8278 /* 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
8279 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
8280 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
8281 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8282 #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
8283 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
8284 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8285 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
8286 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
8287 continue;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8288 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8289 #endif
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8290 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
8291 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8292
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8293 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
8294 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
8295 #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
8296 (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
8297 : NULL)
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
8298 #else
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8299 NULL
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8300 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8301 );
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8302
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8303 #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
8304 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
8305 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8306 /* 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
8307 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
8308 CGFontRelease (font->cg_font);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8309 font->cg_font = NULL;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8310 xfree (font->cg_glyphs);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8311 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
8312 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
8313 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
8314 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8315 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8316 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8317 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8318 else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8319 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8320 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8321 OSStatus err;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8322 FontInfo the_fontinfo;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8323 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
8324
73133
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
8325 #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
8326 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
8327 #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
8328 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
8329
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8330 TextFont (fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8331 TextSize (size);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8332 TextFace (fontface);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8333
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8334 GetFontInfo (&the_fontinfo);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8335
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8336 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
8337 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
8338
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8339 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
8340 || font->mac_scriptcode == smTradChinese
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8341 || font->mac_scriptcode == smSimpChinese
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8342 || font->mac_scriptcode == smKorean);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8343
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8344 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
8345 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8346 int char_width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8347
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8348 font->min_byte1 = 0xa1;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8349 font->max_byte1 = 0xfe;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8350 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
8351 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
8352
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8353 /* 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
8354 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
8355 some fonts. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8356 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
8357 {
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8358 case smJapanese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8359 font->min_byte1 = 0x81;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8360 font->max_byte1 = 0xfc;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8361 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
8362 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
8363 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
8364 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8365 case smTradChinese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8366 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
8367 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
8368 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8369 case smSimpChinese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8370 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
8371 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8372 case smKorean:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8373 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
8374 break;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8375 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8376
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8377 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
8378
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8379 if (fontface & italic)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8380 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
8381 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8382 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
8383 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
8384 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
8385 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
8386 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
8387
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8388 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
8389 }
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8390 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8391 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8392 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8393
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8394 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
8395 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
8396 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
8397
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8398 font->bounds.per_char =
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8399 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
8400 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
8401 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
8402
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8403 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
8404 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
8405 &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
8406 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
8407 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8408 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
8409 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
8410 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8411
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8412 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
8413 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
8414 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8415 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8416
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8417 if (space_bounds)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8418 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8419 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8420
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8421 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
8422 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
8423 if (pcm->width > 0)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8424 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8425 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
8426 pcm->lbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8427 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
8428 pcm->rbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8429 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
8430 pcm->width);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8431 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
8432 pcm->ascent);
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
8433 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
8434 pcm->descent);
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8435
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8436 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
8437 pcm->lbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8438 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
8439 pcm->rbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8440 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
8441 pcm->width);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8442 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
8443 pcm->ascent);
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
8444 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
8445 pcm->descent);
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8446 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8447 if (
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8448 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8449 font->mac_style == NULL &&
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8450 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8451 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
8452 && 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
8453 && 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
8454 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8455 /* 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
8456 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
8457 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
8458 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8459 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8460
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
8461 #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
8462 /* 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
8463 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
8464 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
8465 if (
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
8466 #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
8467 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
8468 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
8469 (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
8470 || 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
8471 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
8472 #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
8473
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8474 return font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8475 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8476
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8477
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8478 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8479 mac_unload_font (dpyinfo, font)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8480 struct mac_display_info *dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8481 XFontStruct *font;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8482 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8483 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
8484 #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
8485 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
8486 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8487 int i;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8488
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8489 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
8490 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
8491 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
8492 xfree (font->bounds.rows);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8493 ATSUDisposeStyle (font->mac_style);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8494 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8495 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8496 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8497 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
8498 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
8499 #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
8500 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
8501 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
8502 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
8503 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
8504 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8505 xfree (font);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8506 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8507
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8508
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8509 /* 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
8510 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
8511 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
8512 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
8513
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8514 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
8515 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
8516 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
8517 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
8518 int size;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8519 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8520 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
8521 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
8522
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8523 /* 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
8524 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
8525 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
8526 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
8527
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8528 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
8529 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8530 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
8531 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8532
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8533 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
8534 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
8535 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
8536 && (!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
8537 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
8538 || !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
8539 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
8540 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
8541 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8542 else
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8543 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
8544
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8545 /* 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
8546 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8547 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
8548 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
8549 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8550
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8551 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
8552
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8553 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
8554 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
8555 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
8556 if (!font)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8557 return NULL;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8558
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8559 /* 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
8560 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
8561 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
8562 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8563
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8564 /* 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
8565 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
8566 && 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
8567 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8568 int sz;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8569 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
8570 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
8571 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
8572 = (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
8573 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8574
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8575 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
8576 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
8577 ++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
8578
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8579 /* 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
8580 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
8581 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
8582 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
8583 fontp->font_idx = i;
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
8584 fontp->charset = -1; /* fs_load_font sets it. */
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8585 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
8586 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
8587
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8588 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
8589 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8590 /* Fixed width font. */
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8591 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
8592 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8593 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8594 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8595 XChar2b char2b;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8596 XCharStruct *pcm;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8597
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8598 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
8599 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
8600 if (pcm)
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8601 fontp->space_width = pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8602 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8603 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
8604
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8605 if (pcm)
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8606 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8607 int width = pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8608 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
8609 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
8610 width += pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8611 fontp->average_width = width / 95;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8612 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8613 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8614 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
8615 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8616
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8617 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
8618 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
8619
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8620 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
8621 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
8622 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8623 /* 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
8624 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
8625 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
8626 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
8627 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
8628 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8629
89960
d79ab6afded5 macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents: 89956
diff changeset
8630 /* MAC_TODO: The script encoding is irrelevant in unicode? */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8631 /* 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
8632 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
8633 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
8634 (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
8635 2:0xA020..0xFF7F). For the moment, we don't know which charset
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
8636 uses this font. So, we set information in fontp->encoding_type
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8637 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
8638 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
8639 if (font->mac_scriptcode == smJapanese)
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
8640 fontp->encoding_type = 4;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8641 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8642 {
90248
c8c3c8dbe333 (mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90242
diff changeset
8643 fontp->encoding_type
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8644 = (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
8645 /* 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
8646 ? (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
8647 ? (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
8648 ? 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
8649 : 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
8650 : 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
8651 /* 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
8652 : (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
8653 ? (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
8654 ? (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
8655 ? (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
8656 ? 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
8657 : 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
8658 : 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
8659 : 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
8660 : (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
8661 ? (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
8662 ? 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
8663 : 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
8664 : 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
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 #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
8668 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
8669 = (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
8670 ? (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
8671 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
8672 = (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
8673 ? (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
8674 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
8675 = (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
8676 ? (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
8677 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8678 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
8679 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
8680 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
8681 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8682
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8683 /* 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
8684 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
8685 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
8686 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
8687 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
8688 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
8689 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8690 return fontp;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8691 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8692 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8693
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8694
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8695 /* 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
8696 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
8697
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8698 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
8699 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
8700 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
8701 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
8702 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8703 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
8704 int i;
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 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
8707 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
8708 && (!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
8709 || !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
8710 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
8711 return NULL;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8712 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8713
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8714
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8715 /* 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
8716 `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
8717
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8718 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8719 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
8720 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
8721 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8722 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
8723
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8724 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
8725 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8726 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
8727 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
8728 && 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
8729 && (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
8730 >= 0))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8731 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8732 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8733 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
8734 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8735 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
8736 = (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
8737
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8738 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
8739 xfree (ccl);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8740 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8741 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
8742 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8743 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8744
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8745 #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
8746 /* 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
8747 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
8748 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
8749 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
8750 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
8751
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8752 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
8753 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
8754 {
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8755 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
8756 }
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8757
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8758 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
8759 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
8760 {
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8761 font_panel_shown_p = 1;
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8762
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8763 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
8764 }
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8765
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8766 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
8767 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
8768 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
8769 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
8770 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8771 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
8772 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
8773 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
8774
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
8775 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
8776 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
8777
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8778 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
8779 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8780 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
8781
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8782 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
8783 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8784 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
8785
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8786 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
8787 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
8788 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
8789 }
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8790 }
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8791
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8792 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
8793 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
8794 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8795 {
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8796 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
8797 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8798 FontSelectionQDStyle qd_style;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8799
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8800 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
8801 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
8802 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
8803 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
8804 qd_style.hasColor = false;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8805
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8806 err = SetFontInfoForSelection (kFontSelectionQDType,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8807 1, &qd_style, target);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8808 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8809 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8810 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
8811 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
8812 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8813
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8814 return err;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8815 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8816 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8817
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 /* 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
8820
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
8821 #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
8822 #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
8823 #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
8824 #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
8825 #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
8826 #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
8827 #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
8828 #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
8829 #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
8830 #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
8831 #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
8832 #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
8833 #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
8834 #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
8835 #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
8836 #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
8837
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8838 #if __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8839 #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
8840 #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
8841 #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
8842
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
8843 #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
8844 #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
8845
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8846 #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
8847
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8848 #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
8849 #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
8850
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8851 #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
8852
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8853 #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
8854 #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
8855 #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
8856
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8857 /* 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
8858 Lisp_Object Qreverse;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8859
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8860
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8861 /* 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
8862 Lisp_Object Vmac_control_modifier;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8863
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8864 /* 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
8865 Lisp_Object Vmac_option_modifier;
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
8866
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8867 /* 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
8868 Lisp_Object Vmac_command_modifier;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8869
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8870 /* 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
8871 Lisp_Object Vmac_function_modifier;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8872
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8873 /* 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
8874 a three button mouse */
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8875 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
8876
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8877 #if USE_CARBON_EVENTS
67666
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
8878 /* 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
8879 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
8880 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
8881
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
8882 /* 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
8883 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
8884 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
8885
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
8886 /* 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
8887 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
8888 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
8889 #endif
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8890
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8891 /* 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
8892 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
8893 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
8894 static struct input_event *read_socket_inev = NULL;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8895
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
8896 /* 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
8897 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
8898
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8899 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
8900
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8901 /* Apple Events */
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
8902 #if USE_CARBON_EVENTS
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8903 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
8904 #ifdef MAC_OSX
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8905 extern Lisp_Object Qwindow;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8906 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
8907 #endif
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8908 #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
8909 extern Lisp_Object Qfont;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8910 static Lisp_Object Qpanel_closed, Qselection;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8911 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
8912 #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
8913 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
8914 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
8915 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
8916 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
8917 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
8918 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
8919 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
8920 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
8921 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
8922 #endif
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
8923 #endif
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
8924 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
8925 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
8926 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
8927 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
8928 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
8929 Lisp_Object *));
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
8930 extern OSErr init_coercion_handler P_ ((void));
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8931
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8932 /* 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
8933 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
8934 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
8935
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
8936 /* Showing help echo string during menu tracking */
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
8937 extern OSStatus install_menu_target_item_handler P_ ((WindowPtr));
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8938
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8939 #if USE_CARBON_EVENTS
60364
de784812b4d4 [TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 59899
diff changeset
8940 #ifdef MAC_OSX
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
8941 extern void init_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
8942 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
8943 #endif
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
8944
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8945 /* Window Event Handler */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8946 static pascal OSStatus mac_handle_window_event (EventHandlerCallRef,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8947 EventRef, void *);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8948 #endif
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8949 OSStatus install_window_handler (WindowPtr);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8950
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8951 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
8952 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
8953
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8954 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
8955 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
8956
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8957 /* 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
8958 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
8959 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
8960 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
8961 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
8962 <linefeed>). */
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8963 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
8964 /*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
8965 /*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
8966 /*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
8967
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8968 /*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
8969 /*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
8970 /*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
8971 /*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
8972
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8973 /*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
8974 /*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
8975 /*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
8976 /*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
8977
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8978 /*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
8979 /*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
8980 /*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
8981 /*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
8982
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8983 /*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
8984 /*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
8985 /*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
8986 /*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
8987
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8988 /*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
8989 /*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
8990 /*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
8991 /*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
8992 };
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8993
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8994 #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
8995 /* 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
8996 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
8997 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
8998 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
8999 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
9000 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
9001 /*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
9002 /*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
9003 /*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
9004
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9005 /*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
9006 /*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
9007 /*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
9008 /*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
9009
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9010 /*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
9011 /*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
9012 /*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
9013 /*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
9014
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9015 /*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
9016 /*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
9017 /*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
9018 /*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
9019
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9020 /*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
9021 /*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
9022 /*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
9023 /*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
9024
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9025 /*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
9026 /*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
9027 /*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
9028 /*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
9029 };
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
9030 #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
9031
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9032 static int
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9033 #if USE_CARBON_EVENTS
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9034 mac_to_emacs_modifiers (UInt32 mods)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9035 #else
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9036 mac_to_emacs_modifiers (EventModifiers mods)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9037 #endif
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9038 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9039 unsigned int result = 0;
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9040 if (mods & shiftKey)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9041 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
9042
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9043 /* Deactivated to simplify configuration:
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9044 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
9045 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
9046 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
9047 composed one.
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9048 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
9049 (( !NILP(Vmac_option_modifier) ||
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9050 ((mods & cmdKey) || (mods & controlKey))))) */
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9051
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
9052 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
9053 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
9054 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9055 result |= XUINT(val);
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
9056 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9057 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
9058 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
9059 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9060 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
9061 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9062 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
9063 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
9064 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9065 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
9066 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9067
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9068 #ifdef MAC_OSX
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9069 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
9070 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
9071 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9072 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
9073 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
9074 #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
9075
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9076 return result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9077 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9078
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9079 static UInt32
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9080 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
9081 UInt32 modifiers;
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9082 {
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9083 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
9084 (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
9085 | (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
9086 | (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
9087
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9088 #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
9089 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
9090 (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
9091 #endif
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9092
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9093 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
9094 }
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9095
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9096 static int
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9097 mac_get_emulated_btn ( UInt32 modifiers )
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9098 {
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9099 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
9100 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
9101 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
9102 if (modifiers & cmdKey)
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9103 result = cmdIs3 ? 2 : 1;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9104 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
9105 result = cmdIs3 ? 1 : 2;
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9106 }
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9107 return result;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9108 }
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9109
75200
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9110 #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
9111 /***** 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
9112 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
9113 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
9114
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9115 int
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9116 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
9117 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
9118 {
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9119 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
9120 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
9121 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
9122 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
9123
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9124 /* 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
9125 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
9126 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
9127 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
9128 return 0;
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9129
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9130 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
9131 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
9132 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
9133
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9134 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
9135 & (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
9136 | 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
9137
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9138 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
9139 }
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9140 #endif
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9141
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9142 #if USE_CARBON_EVENTS
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9143 /* Obtains the event modifiers from the event ref and then calls
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9144 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
9145 static int
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9146 mac_event_to_emacs_modifiers (EventRef eventRef)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9147 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9148 UInt32 mods = 0;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9149 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9150 sizeof (UInt32), NULL, &mods);
55583
21f88361795c Various fixes to support USE_LSB_TAG with carbon emacs. Mostly fixing
Steven Tamm <steventamm@mac.com>
parents: 55539
diff changeset
9151 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
9152 GetEventClass(eventRef) == kEventClassMouse)
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9153 {
56277
fd126130c3cd macterm.c (mac_get_emulated_btn)
Steven Tamm <steventamm@mac.com>
parents: 56271
diff changeset
9154 mods &= ~(optionKey | cmdKey);
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9155 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9156 return mac_to_emacs_modifiers (mods);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9157 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9158
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9159 /* 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
9160 code in the emacs input_event. */
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9161 static int
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9162 mac_get_mouse_btn (EventRef ref)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9163 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9164 EventMouseButton result = kEventMouseButtonPrimary;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9165 GetEventParameter (ref, kEventParamMouseButton, typeMouseButton, NULL,
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9166 sizeof (EventMouseButton), NULL, &result);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9167 switch (result)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9168 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9169 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
9170 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
9171 return 0;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9172 else {
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9173 UInt32 mods = 0;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9174 GetEventParameter (ref, kEventParamKeyModifiers, typeUInt32, NULL,
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9175 sizeof (UInt32), NULL, &mods);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9176 return mac_get_emulated_btn(mods);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9177 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9178 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
9179 return mac_wheel_button_is_mouse_2 ? 2 : 1;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9180 case kEventMouseButtonTertiary:
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9181 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
9182 return mac_wheel_button_is_mouse_2 ? 1 : 2;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9183 default:
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9184 return 0;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9185 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9186 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9187
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9188 /* Normally, ConvertEventRefToEventRecord will correctly handle all
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9189 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
9190 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
9191 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
9192 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
9193 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
9194 XTread_socket loop). */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9195 static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9196 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9197 OSStatus err;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9198 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
9199 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
9200
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9201 if (result)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9202 return result;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9203
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9204 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
9205 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9206 case kEventClassMouse:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9207 switch (GetEventKind (eventRef))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9208 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9209 case kEventMouseDown:
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9210 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
9211 result = 1;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9212 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9213
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9214 case kEventMouseUp:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9215 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
9216 result = 1;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9217 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9218
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9219 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9220 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9221 }
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
9222 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9223
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9224 case kEventClassKeyboard:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9225 switch (GetEventKind (eventRef))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9226 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9227 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
9228 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
9229 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
9230 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
9231 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
9232 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
9233 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
9234 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
9235 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
9236 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9237 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
9238 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
9239
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9240 err = GetEventParameter (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
9241 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
9242 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
9243 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
9244 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
9245 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
9246 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
9247 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
9248 {
77705
7bb1d577f961 [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77167
diff changeset
9249 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
9250 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
9251 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
9252 }
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9253 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9254 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9255
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9256 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9257 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9258 }
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
9259 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9260
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9261 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9262 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9263 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9264
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9265 if (result)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9266 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9267 /* 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
9268 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
9269
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9270 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
9271 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
9272 /* 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
9273 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
9274 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
9275 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
9276 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
9277
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9278 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
9279 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9280
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9281 return result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9282 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9283
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9284 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9285
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
9286 #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
9287 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9288 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
9289 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9290 Handle menubar_handle;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9291 MenuHandle menu_handle;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9292
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9293 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
9294 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
9295 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9296 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
9297 DrawMenuBar ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9298
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9299 #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
9300 menu_handle = GetMenuHandle (M_APPLE);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9301 if(menu_handle != NULL)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9302 AppendResMenu (menu_handle,'DRVR');
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9303 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9304 abort ();
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9305 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9306 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9307
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9308
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9309 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9310 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
9311 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9312 #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
9313 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
9314 InitFonts ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9315 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
9316 InitWindows ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9317 InitMenus ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9318 TEInit ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9319 InitDialogs (NULL);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9320 #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
9321 InitCursor ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9322
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9323 #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
9324 /* 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
9325 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
9326
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9327 /* 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
9328 complicated scripts */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9329 MaxApplZone ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9330 MoreMasters ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9331 #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
9332 }
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9335 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
9336 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9337 SInt32 physical_ram_size, logical_ram_size;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9338
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9339 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
9340 || 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
9341 || 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
9342 || 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
9343 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9344 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
9345 exit (1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9346 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9347 }
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
9348 #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
9349
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9350 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9351 do_window_update (WindowPtr win)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9352 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9353 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
9354
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9355 BeginUpdate (win);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9356
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9357 /* 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
9358 below. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9359 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
9360 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9361 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
9362 {
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
9363 /* 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
9364 #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
9365 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
9366 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
9367 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
9368 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9369 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9370 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
9371 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9372 Rect r;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9373 #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
9374 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
9375
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
9376 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
9377 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
9378 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
9379 #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
9380 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
9381 #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
9382 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
9383 DisposeRgn (region);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9384 #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
9385 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
9386 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
9387 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
9388 #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
9389 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9390 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9391
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9392 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
9393 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9394
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9395 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9396 is_emacs_window (WindowPtr win)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9397 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9398 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
9399
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9400 if (!win)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9401 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9402
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9403 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
9404 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
9405 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
9406 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9407
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9408 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9409 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9410
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9411 #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
9412 static OSStatus
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9413 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
9414 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9415 OSStatus err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9416 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
9417
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9418 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
9419
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9420 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
9421 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
9422 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
9423 && 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
9424 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
9425 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
9426 && 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
9427 && 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
9428 && CONSP (saved_ts_script_language_on_focus)
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
9429 && 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
9430 XCAR (Vmac_ts_script_language_on_focus))
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
9431 && 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
9432 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
9433 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9434 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
9435 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
9436 slptr = &slrec;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9437 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9438 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9439
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9440 if (slptr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9441 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9442 #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
9443 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
9444 kKeyboardInputMethodClass);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9445 #else
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9446 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
9447 #endif
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9448 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
9449 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
9450
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9451 /* 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
9452 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
9453 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
9454 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9455
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9456 return err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9457 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9458
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9459 static OSStatus
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9460 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
9461 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9462 OSStatus err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9463 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
9464
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
9465 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
9466
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9467 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
9468 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9469 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
9470 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
9471 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
9472 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9473 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
9474 && 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
9475 && 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
9476 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9477 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
9478 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
9479 slptr = &slrec;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9480 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9481
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9482 if (slptr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9483 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9484 #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
9485 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
9486 kKeyboardInputMethodClass);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9487 #else
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9488 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
9489 #endif
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9490 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9491
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9492 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
9493
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9494 return err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9495 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9496 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9497
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
9498 #if !TARGET_API_MAC_CARBON
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
9499 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9500 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
9501 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9502 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
9503 SInt16 da_driver_refnum;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9504
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9505 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
9506 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
9507 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9508 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9509 GetMenuItemText (GetMenuHandle (M_APPLE), menu_item, item_name);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9510 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
9511 }
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
9512 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9513 #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
9514
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9515 /* 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
9516 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
9517
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9518 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
9519 do_grow_window (w, e)
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9520 WindowPtr w;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9521 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
9522 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9523 Rect limit_rect;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9524 int rows, columns, width, height;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9525 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
9526 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
9527 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
9528 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9529 Rect new_rect;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9530 #else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9531 long grow_size;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9532 #endif
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9533
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9534 if (size_hints->flags & PMinSize)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9535 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9536 min_width = size_hints->min_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9537 min_height = size_hints->min_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9538 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9539 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
9540
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9541 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9542 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
9543 return;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9544 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
9545 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
9546 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9547 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
9548 /* 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
9549 if (grow_size == 0)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9550 return;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9551 height = HiWord (grow_size);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9552 width = LoWord (grow_size);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9553 #endif
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9554
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9555 if (width != FRAME_PIXEL_WIDTH (f)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9556 || height != FRAME_PIXEL_HEIGHT (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9557 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9558 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
9559 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9560
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9561 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
9562 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9563 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9564
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9565
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9566 #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
9567 static Point
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9568 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
9569 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
9570 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9571 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9572 WindowPtr w = FRAME_MAC_WINDOW (f);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9573 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
9574 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
9575 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
9576
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9577 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
9578 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
9579 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
9580 /* 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
9581 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
9582 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
9583 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
9584 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
9585 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
9586 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
9587
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9588 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
9589 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9590 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9591
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9592 /* 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
9593 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
9594 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
9595 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
9596
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9597 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9598 do_zoom_window (WindowPtr w, int zoom_in_or_out)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9599 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9600 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
9601 int width, height;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9602 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
9603 #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
9604 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
9605
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9606 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
9607 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
9608 && 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
9609 && 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
9610 zoom_in_or_out = inZoomIn;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
9611 else
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9612 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
9613
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9614 #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
9615 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
9616 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9617 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
9618 #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
9619 GrafPtr save_port;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
9620 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
9621 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
9622 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
9623
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9624 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
9625
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9626 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
9627
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9628 /* 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
9629 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
9630 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
9631 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9632 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
9633 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
9634
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9635 /* 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
9636 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
9637 - (**((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
9638
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9639 /* 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
9640 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
9641 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
9642 InsetRect (&zoom_rect, 8, 4); /* not too tight */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9643
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9644 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
9645 + 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
9646
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9647 /* 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
9648 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
9649 zoom_rect.bottom =
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9650 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
9651
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9652 (**((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
9653 = zoom_rect;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9654 }
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9655
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
9656 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
9657
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9658 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
9659 #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
9660
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9661 #if !USE_CARBON_EVENTS
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9662 /* 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
9663 #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
9664 GetWindowPortBounds (w, &port_rect);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9665 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9666 port_rect = w->portRect;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9667 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9668 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
9669 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
9670
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9671 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
9672 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
9673 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9674 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9675
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9676 void
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9677 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
9678 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
9679 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
9680 {
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9681 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
9682
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9683 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
9684
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9685 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
9686 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
9687 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
9688 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
9689 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
9690 /* 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
9691 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
9692 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
9693 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
9694 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9695
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9696 #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
9697 static OSStatus
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9698 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
9699 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
9700 AEEventClass class;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9701 AEEventID id;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9702 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
9703 EventRef event;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9704 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
9705 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
9706 const EventParamType *types;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9707 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9708 OSStatus err = eventNotHandledErr;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9709 Lisp_Object binding;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9710
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9711 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
9712 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
9713 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9714 if (INTEGERP (binding))
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9715 err = XINT (binding);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9716 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9717 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9718 AppleEvent apple_event;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9719 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
9720 names, types,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9721 &apple_event);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9722 if (err == noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9723 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9724 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
9725 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
9726 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
9727 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9728 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9729 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9730
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9731 return err;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9732 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9733
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9734 void
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9735 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
9736 WindowRef window;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9737 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
9738 SInt16 modifiers;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9739 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
9740 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9741 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
9742
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9743 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
9744
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9745 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
9746 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
9747 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
9748 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
9749 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
9750 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
9751 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
9752 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
9753 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9754 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9755
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9756 #if USE_CARBON_EVENTS
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9757 static pascal OSStatus
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9758 mac_handle_command_event (next_handler, event, data)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9759 EventHandlerCallRef next_handler;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9760 EventRef event;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9761 void *data;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9762 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9763 OSStatus result, err;
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9764 HICommand command;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9765 static 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
9766 {kEventParamDirectObject, kEventParamKeyModifiers};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9767 static const EventParamType types[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9768 {typeHICommand, typeUInt32};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9769 int num_params = sizeof (names) / sizeof (names[0]);
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9770
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9771 result = CallNextEventHandler (next_handler, event);
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9772 if (result != eventNotHandledErr)
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9773 return result;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9774
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9775 err = GetEventParameter (event, kEventParamDirectObject, typeHICommand,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9776 NULL, sizeof (HICommand), NULL, &command);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9777
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9778 if (err != noErr || command.commandID == 0)
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9779 return eventNotHandledErr;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9780
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
9781 /* A HI command event is mapped to an Apple event whose event class
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
9782 symbol is `hi-command' and event ID is its command ID. */
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9783 err = mac_store_event_ref_as_apple_event (0, command.commandID,
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
9784 Qhi_command, Qnil,
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9785 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
9786 return err == noErr ? noErr : eventNotHandledErr;
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9787 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9788
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
9789 static OSStatus
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9790 init_command_handler ()
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9791 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9792 static const EventTypeSpec specs[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9793 {{kEventClassCommand, kEventCommandProcess}};
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9794 static EventHandlerUPP handle_command_eventUPP = NULL;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9795
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9796 if (handle_command_eventUPP == NULL)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9797 handle_command_eventUPP = NewEventHandlerUPP (mac_handle_command_event);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9798 return InstallApplicationEventHandler (handle_command_eventUPP,
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9799 GetEventTypeCount (specs), specs,
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9800 NULL, NULL);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9801 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9802
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9803 static pascal OSStatus
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9804 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
9805 EventHandlerCallRef next_handler;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9806 EventRef event;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9807 void *data;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9808 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9809 WindowPtr wp;
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9810 OSStatus result, err;
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9811 struct frame *f;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9812 UInt32 attributes;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9813 XSizeHints *size_hints;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9814
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9815 err = GetEventParameter (event, kEventParamDirectObject, typeWindowRef,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9816 NULL, sizeof (WindowPtr), NULL, &wp);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9817 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
9818 return eventNotHandledErr;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9819
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9820 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
9821 switch (GetEventKind (event))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9822 {
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9823 case kEventWindowUpdate:
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9824 result = CallNextEventHandler (next_handler, event);
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9825 if (result != eventNotHandledErr)
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9826 return result;
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9827
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9828 do_window_update (wp);
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9829 return noErr;
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9830
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9831 case kEventWindowGetIdealSize:
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9832 result = CallNextEventHandler (next_handler, event);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9833 if (result != eventNotHandledErr)
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9834 return result;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9835
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9836 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9837 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
9838
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9839 err = SetEventParameter (event, kEventParamDimensions,
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9840 typeQDPoint, sizeof (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
9841 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
9842 return noErr;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9843 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9844 break;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9845
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9846 case kEventWindowBoundsChanging:
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9847 result = CallNextEventHandler (next_handler, event);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9848 if (result != eventNotHandledErr)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9849 return result;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9850
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9851 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
9852 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
9853 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
9854 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9855
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9856 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
9857 if ((attributes & kWindowBoundsChangeUserResize)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9858 && ((size_hints->flags & (PResizeInc | PBaseSize | PMinSize))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9859 == (PResizeInc | PBaseSize | PMinSize)))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9860 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9861 Rect bounds;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9862 int width, height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9863
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9864 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
9865 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
9866 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
9867 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
9868 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9869
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9870 width = bounds.right - bounds.left;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9871 height = bounds.bottom - bounds.top;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9872
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9873 if (width < size_hints->min_width)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9874 width = size_hints->min_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9875 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9876 width = size_hints->base_width
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9877 + (int) ((width - size_hints->base_width)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9878 / (float) size_hints->width_inc + .5)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9879 * size_hints->width_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9880
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9881 if (height < size_hints->min_height)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9882 height = size_hints->min_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9883 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9884 height = size_hints->base_height
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9885 + (int) ((height - size_hints->base_height)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9886 / (float) size_hints->height_inc + .5)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9887 * size_hints->height_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9888
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9889 bounds.right = bounds.left + width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9890 bounds.bottom = bounds.top + height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9891 SetEventParameter (event, kEventParamCurrentBounds,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9892 typeQDRectangle, sizeof (Rect), &bounds);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9893 return noErr;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9894 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9895 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
9896
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9897 case kEventWindowBoundsChanged:
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9898 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
9899 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
9900 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
9901 break;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9902
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9903 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
9904 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9905 Rect bounds;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9906
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9907 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
9908 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
9909 NULL, &bounds);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9910 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
9911 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9912 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
9913
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9914 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
9915 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
9916 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
9917 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
9918 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9919 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9920
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9921 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
9922 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
9923
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9924 return noErr;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9925
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
9926 case kEventWindowShown:
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
9927 case kEventWindowHidden:
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
9928 case kEventWindowExpanded:
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
9929 case kEventWindowCollapsed:
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
9930 result = CallNextEventHandler (next_handler, event);
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
9931
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9932 mac_handle_visibility_change (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
9933 return noErr;
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
9934
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
9935 break;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9936
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9937 case kEventWindowClose:
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9938 result = CallNextEventHandler (next_handler, event);
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9939 {
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9940 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
9941
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9942 EVENT_INIT (buf);
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9943 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
9944 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
9945 buf.arg = Qnil;
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9946 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
9947 }
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9948 return noErr;
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9949
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9950 #ifdef MAC_OSX
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9951 case kEventWindowToolbarSwitchMode:
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9952 result = CallNextEventHandler (next_handler, event);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9953 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9954 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
9955 kEventParamWindowMouseLocation,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9956 kEventParamKeyModifiers,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9957 kEventParamMouseButton,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9958 kEventParamClickCount,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9959 kEventParamMouseChord};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9960 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
9961 typeQDPoint,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9962 typeUInt32,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9963 typeMouseButton,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9964 typeUInt32,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9965 typeUInt32};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9966 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
9967
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9968 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
9969 Qwindow,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9970 Qtoolbar_switch_mode,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9971 event, num_params,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9972 names, types);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9973 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9974 return err == noErr ? noErr : result;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9975 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9976
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9977 #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
9978 case kEventWindowFocusAcquired:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9979 result = CallNextEventHandler (next_handler, event);
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9980 err = mac_tsm_resume ();
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9981 return err == noErr ? noErr : result;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9982
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9983 case kEventWindowFocusRelinquish:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9984 result = CallNextEventHandler (next_handler, event);
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9985 err = mac_tsm_suspend ();
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9986 return err == noErr ? noErr : result;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9987 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9988 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9989
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9990 return eventNotHandledErr;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9991 }
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9992
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9993 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
9994 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
9995 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
9996 EventRef event;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9997 void *data;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9998 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9999 OSStatus result, err;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10000
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10001 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
10002 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10003 case kEventMouseWheelMoved:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10004 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10005 WindowPtr wp;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10006 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
10007 EventMouseWheelAxis axis;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10008 SInt32 delta;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10009 Point point;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10010
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10011 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
10012 if (result != eventNotHandledErr || read_socket_inev == NULL)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10013 return result;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10014
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10015 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
10016 NULL, sizeof (WindowRef), NULL, &wp);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10017 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
10018 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10019
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10020 f = mac_window_to_frame (wp);
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10021 if (f != mac_focus_frame (&one_mac_display_info))
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10022 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10023
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10024 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
10025 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
10026 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
10027 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
10028 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10029
76437
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
10030 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
10031 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
10032 NULL, &point);
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
10033 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
10034 break;
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
10035
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
10036 SetPortWindowPort (wp);
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
10037 GlobalToLocal (&point);
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
10038 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
10039 || 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
10040 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
10041 break;
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
10042
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
10043 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
10044 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
10045 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
10046 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
10047 break;
76437
d29bfdf8ae75 [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76371
diff changeset
10048
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10049 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
10050 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
10051 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
10052 (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
10053 | ((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
10054 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
10055 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
10056 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
10057
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10058 return noErr;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10059 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10060 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10061
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10062 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10063 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10064 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10065
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10066 return eventNotHandledErr;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10067 }
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10068
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10069 #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
10070 static pascal OSStatus
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10071 mac_handle_font_event (next_handler, event, data)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10072 EventHandlerCallRef next_handler;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10073 EventRef event;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10074 void *data;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10075 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10076 OSStatus result, err;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10077 Lisp_Object id_key;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10078 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
10079 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
10080 const EventParamType *types;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10081 static const EventParamName names_sel[] = {kEventParamATSUFontID,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10082 kEventParamATSUFontSize,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10083 kEventParamFMFontFamily,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10084 kEventParamFMFontSize,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10085 kEventParamFontColor};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10086 static const EventParamType types_sel[] = {typeATSUFontID,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10087 typeATSUSize,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10088 typeFMFontFamily,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10089 typeFMFontSize,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10090 typeFontColor};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10091
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10092 result = CallNextEventHandler (next_handler, event);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10093 if (result != eventNotHandledErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10094 return result;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10095
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10096 switch (GetEventKind (event))
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10097 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10098 case kEventFontPanelClosed:
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10099 id_key = Qpanel_closed;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10100 num_params = 0;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10101 names = NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10102 types = NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10103 break;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10104
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10105 case kEventFontSelection:
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10106 id_key = Qselection;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10107 num_params = sizeof (names_sel) / sizeof (names_sel[0]);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10108 names = names_sel;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10109 types = types_sel;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10110 break;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10111 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10112
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10113 err = mac_store_event_ref_as_apple_event (0, 0, Qfont, id_key,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10114 event, num_params,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10115 names, types);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10116
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10117 return err == noErr ? noErr : eventNotHandledErr;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10118 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10119 #endif
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10120
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10121 #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
10122 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
10123 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
10124 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
10125 EventRef event;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10126 void *data;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10127 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10128 OSStatus result, err = noErr;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10129 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
10130 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
10131 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
10132 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
10133 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
10134 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
10135 {kEventParamTextInputSendComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10136 kEventParamTextInputSendRefCon,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10137 kEventParamTextInputSendSLRec,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10138 kEventParamTextInputSendFixLen,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10139 kEventParamTextInputSendText,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10140 kEventParamTextInputSendUpdateRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10141 kEventParamTextInputSendHiliteRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10142 kEventParamTextInputSendClauseRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10143 kEventParamTextInputSendPinRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10144 kEventParamTextInputSendTextServiceEncoding,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10145 kEventParamTextInputSendTextServiceMacEncoding,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10146 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
10147 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
10148 {typeComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10149 typeLongInteger,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10150 typeIntlWritingCode,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10151 typeLongInteger,
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10152 #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
10153 typeUnicodeText,
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10154 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10155 typeChar,
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10156 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10157 typeTextRangeArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10158 typeTextRangeArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10159 typeOffsetArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10160 typeTextRange,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10161 typeUInt32,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10162 typeUInt32,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10163 typeUInt32};
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10164 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
10165 {kEventParamTextInputSendComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10166 kEventParamTextInputSendRefCon,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10167 kEventParamTextInputSendSLRec,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10168 kEventParamTextInputSendText};
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10169 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
10170 {typeComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10171 typeLongInteger,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10172 typeIntlWritingCode,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10173 typeUnicodeText};
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10174
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10175 result = CallNextEventHandler (next_handler, event);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10176
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10177 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
10178 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10179 case kEventTextInputUpdateActiveInputArea:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10180 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
10181 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
10182 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
10183 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
10184 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
10185 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
10186 seqno_uaia++;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10187 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10188
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10189 case kEventTextInputUnicodeForKeyEvent:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10190 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10191 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
10192 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
10193
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10194 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
10195 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
10196 &kbd_event);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10197 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
10198 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
10199 typeUInt32, NULL,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10200 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
10201 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
10202 /* There're mapped modifier keys. Process it in
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
10203 XTread_socket. */
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
10204 return eventNotHandledErr;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10205 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
10206 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
10207 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
10208 NULL);
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10209 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
10210 {
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10211 UniChar code;
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10212
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10213 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
10214 typeUnicodeText, NULL,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10215 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
10216 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
10217 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10218 /* ASCII character. Process it in XTread_socket. */
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
10219 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
10220 {
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10221 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
10222
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10223 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
10224 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
10225 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
10226 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
10227 && 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
10228 {
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10229 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
10230 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
10231
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10232 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
10233 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
10234 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
10235 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
10236 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
10237 (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
10238 & (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
10239 | 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
10240 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
10241 }
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10242 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10243 return eventNotHandledErr;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10244 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10245 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10246 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10247 /* Non-ASCII keystrokes without mapped modifiers are processed
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10248 at the Lisp level. */
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10249 id_key = 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
10250 num_params = sizeof (names_ufke) / sizeof (names_ufke[0]);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10251 names = names_ufke;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10252 types = types_ufke;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10253 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10254
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10255 case kEventTextInputOffsetToPos:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10256 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10257 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
10258 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
10259 Point p;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10260
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10261 if (!OVERLAYP (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
10262 return eventNotHandledErr;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10263
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10264 /* 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
10265 previous events may change some states about display. */
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10266 if (NILP (Foverlay_get (Vmac_ts_active_input_overlay, Qbefore_string)))
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10267 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10268 /* 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
10269 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
10270 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
10271 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10272 else
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10273 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10274 /* Active input area is displayed around the current point. */
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10275 f = SELECTED_FRAME ();
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10276 w = XWINDOW (f->selected_window);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10277 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10278
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10279 p.h = (WINDOW_TO_FRAME_PIXEL_X (w, w->cursor.x)
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10280 + WINDOW_LEFT_FRINGE_WIDTH (w));
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10281 p.v = (WINDOW_TO_FRAME_PIXEL_Y (w, w->cursor.y)
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10282 + FONT_BASE (FRAME_FONT (f)));
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10283 SetPortWindowPort (FRAME_MAC_WINDOW (f));
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10284 LocalToGlobal (&p);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10285 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
10286 typeQDPoint, sizeof (typeQDPoint), &p);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10287 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10288 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10289
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10290 default:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10291 abort ();
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10292 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10293
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10294 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
10295 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
10296 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
10297 names, types);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10298
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10299 return err == noErr ? noErr : result;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10300 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10301 #endif
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10302
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10303 #ifdef MAC_OSX
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10304 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
10305 mac_store_service_event (event)
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10306 EventRef event;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10307 {
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10308 OSStatus err;
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10309 Lisp_Object id_key;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10310 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
10311 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
10312 const EventParamType *types;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10313 static const EventParamName names_pfm[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10314 {kEventParamServiceMessageName, kEventParamServiceUserData};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10315 static const EventParamType types_pfm[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10316 {typeCFStringRef, typeCFStringRef};
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10317
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10318 switch (GetEventKind (event))
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10319 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10320 case kEventServicePaste:
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10321 id_key = Qpaste;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10322 num_params = 0;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10323 names = NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10324 types = NULL;
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10325 break;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10326
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10327 case kEventServicePerform:
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10328 id_key = Qperform;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10329 num_params = sizeof (names_pfm) / sizeof (names_pfm[0]);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10330 names = names_pfm;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10331 types = types_pfm;
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10332 break;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10333
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10334 default:
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10335 abort ();
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10336 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10337
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
10338 err = mac_store_event_ref_as_apple_event (0, 0, Qservice, id_key,
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10339 event, num_params,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10340 names, types);
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10341
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10342 return err;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10343 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10344 #endif /* MAC_OSX */
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10345 #endif /* USE_CARBON_EVENTS */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10346
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10347
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
10348 OSStatus
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10349 install_window_handler (window)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10350 WindowPtr window;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10351 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
10352 OSStatus err = noErr;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10353 #if USE_CARBON_EVENTS
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10354 static const EventTypeSpec specs_window[] =
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10355 {{kEventClassWindow, kEventWindowUpdate},
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10356 {kEventClassWindow, kEventWindowGetIdealSize},
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
10357 {kEventClassWindow, kEventWindowBoundsChanging},
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10358 {kEventClassWindow, kEventWindowBoundsChanged},
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
10359 {kEventClassWindow, kEventWindowShown},
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
10360 {kEventClassWindow, kEventWindowHidden},
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
10361 {kEventClassWindow, kEventWindowExpanded},
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10362 {kEventClassWindow, kEventWindowCollapsed},
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10363 {kEventClassWindow, kEventWindowClose},
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10364 #ifdef MAC_OSX
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10365 {kEventClassWindow, kEventWindowToolbarSwitchMode},
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10366 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10367 #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
10368 {kEventClassWindow, kEventWindowFocusAcquired},
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10369 {kEventClassWindow, kEventWindowFocusRelinquish},
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10370 #endif
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10371 };
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10372 static const EventTypeSpec specs_mouse[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10373 {{kEventClassMouse, kEventMouseWheelMoved}};
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10374 static EventHandlerUPP handle_window_eventUPP = NULL;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10375 static EventHandlerUPP handle_mouse_eventUPP = NULL;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10376 #if USE_MAC_FONT_PANEL
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10377 static const EventTypeSpec specs_font[] =
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10378 {{kEventClassFont, kEventFontPanelClosed},
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10379 {kEventClassFont, kEventFontSelection}};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10380 static EventHandlerUPP handle_font_eventUPP = NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10381 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10382 #if USE_MAC_TSM
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10383 static const EventTypeSpec specs_text_input[] =
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10384 {{kEventClassTextInput, kEventTextInputUpdateActiveInputArea},
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10385 {kEventClassTextInput, kEventTextInputUnicodeForKeyEvent},
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10386 {kEventClassTextInput, kEventTextInputOffsetToPos}};
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10387 static EventHandlerUPP handle_text_input_eventUPP = NULL;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10388 #endif
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10389
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10390 if (handle_window_eventUPP == NULL)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10391 handle_window_eventUPP = NewEventHandlerUPP (mac_handle_window_event);
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10392 if (handle_mouse_eventUPP == NULL)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10393 handle_mouse_eventUPP = NewEventHandlerUPP (mac_handle_mouse_event);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10394 #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
10395 if (handle_font_eventUPP == NULL)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10396 handle_font_eventUPP = NewEventHandlerUPP (mac_handle_font_event);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10397 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10398 #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
10399 if (handle_text_input_eventUPP == NULL)
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10400 handle_text_input_eventUPP =
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10401 NewEventHandlerUPP (mac_handle_text_input_event);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10402 #endif
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10403 err = InstallWindowEventHandler (window, handle_window_eventUPP,
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10404 GetEventTypeCount (specs_window),
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10405 specs_window, NULL, NULL);
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10406 if (err == noErr)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10407 err = InstallWindowEventHandler (window, handle_mouse_eventUPP,
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10408 GetEventTypeCount (specs_mouse),
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10409 specs_mouse, NULL, NULL);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10410 #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
10411 if (err == noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10412 err = InstallWindowEventHandler (window, handle_font_eventUPP,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10413 GetEventTypeCount (specs_font),
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10414 specs_font, NULL, NULL);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10415 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10416 #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
10417 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
10418 err = InstallWindowEventHandler (window, handle_text_input_eventUPP,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10419 GetEventTypeCount (specs_text_input),
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10420 specs_text_input, window, NULL);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10421 #endif
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
10422 #endif
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
10423 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
10424 err = install_drag_handler (window);
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
10425 if (err == noErr)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
10426 err = install_menu_target_item_handler (window);
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10427
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
10428 return err;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10429 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10430
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
10431 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
10432 remove_window_handler (window)
de784812b4d4 [TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 59899
diff changeset
10433 WindowPtr window;
de784812b4d4 [TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 59899
diff changeset
10434 {
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10435 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
10436 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10437
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10438
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10439 static pascal void
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10440 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
10441 AppleEvent *event;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10442 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10443 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
10444 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10445
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10446 static OSErr
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10447 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
10448 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10449 OSErr err;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10450 static DMNotificationUPP handle_dm_notificationUPP = NULL;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10451 ProcessSerialNumber psn;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10452
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10453 if (handle_dm_notificationUPP == NULL)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10454 handle_dm_notificationUPP =
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10455 NewDMNotificationUPP (mac_handle_dm_notification);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10456
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10457 err = GetCurrentProcess (&psn);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10458 if (err == noErr)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10459 err = DMRegisterNotifyProc (handle_dm_notificationUPP, &psn);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10460
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10461 return err;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10462 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10463
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10464 static void
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10465 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
10466 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
10467 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10468 #ifdef MAC_OSX
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10469 /* 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
10470 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
10471 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
10472 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
10473 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10474 CGDisplayErr err;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10475 CGDisplayCount ndisps;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10476 CGDirectDisplayID *displays;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10477
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10478 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
10479 if (err == noErr)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10480 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10481 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
10482 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
10483 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10484 if (err == noErr)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10485 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10486 CGRect bounds = CGRectZero;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10487
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10488 while (ndisps-- > 0)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10489 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
10490 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
10491 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
10492 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10493 else
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10494 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10495 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
10496 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
10497 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10498 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10499 #else /* !MAC_OSX */
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10500 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10501 GDHandle gdh = GetMainDevice ();
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10502 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
10503
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10504 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
10505 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
10506 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
10507 break;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10508
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10509 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
10510 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
10511 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
10512
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10513 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
10514 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
10515 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10516 #endif /* !MAC_OSX */
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10517 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10518
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10519
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10520 #if __profile__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10521 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10522 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
10523 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10524 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
10525 ProfilerTerm ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10526 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10527 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10528
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10529 /* 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
10530 (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
10531 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
10532 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
10533 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
10534 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
10535 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
10536 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
10537 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
10538 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
10539 (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
10540 (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
10541 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
10542
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
10543 #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
10544 #undef main
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10545 int
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10546 main (void)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10547 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10548 #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
10549 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
10550 exit(1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10551 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10552
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10553 #if __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10554 /* 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
10555 _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
10556 _ftype = 'TEXT';
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10557 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10558
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10559 do_init_managers ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10560
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10561 do_get_menus ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10562
53651
c7d570b7ba42 (main) [USE_LSB_TAG]: Don't range check the ram.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53606
diff changeset
10563 #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
10564 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
10565 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10566
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10567 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
10568
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10569 init_environ ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10570
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
10571 init_coercion_handler ();
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
10572
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10573 initialize_applescript ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10574
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10575 init_apple_event_handler ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10576
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
10577 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
10578
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10579 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10580 char **argv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10581 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
10582
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10583 /* 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
10584 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
10585 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
10586 argc++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10587
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10588 /* 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
10589 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
10590
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10591 #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
10592 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
10593 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10594
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10595 /* 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
10596 (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
10597 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10598
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10599 /* 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
10600 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10601 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10602 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10603
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10604 #if !USE_CARBON_EVENTS
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10605 static RgnHandle mouse_region = NULL;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10606
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10607 Boolean
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10608 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
10609 EventRecord *er;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10610 UInt32 sleep_time;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10611 Boolean dequeue;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10612 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10613 static EventRecord er_buf = {nullEvent};
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10614 UInt32 target_tick, current_tick;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10615 EventMask event_mask;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10616
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10617 if (mouse_region == NULL)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10618 mouse_region = NewRgn ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10619
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10620 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
10621 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
10622 event_mask -= highLevelEventMask;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10623
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10624 current_tick = TickCount ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10625 target_tick = current_tick + sleep_time;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10626
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10627 if (er_buf.what == nullEvent)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10628 while (!WaitNextEvent (event_mask, &er_buf,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10629 target_tick - current_tick, mouse_region))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10630 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10631 current_tick = TickCount ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10632 if (target_tick <= current_tick)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10633 return false;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10634 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10635
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10636 *er = er_buf;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10637 if (dequeue)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10638 er_buf.what = nullEvent;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10639 return true;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10640 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10641 #endif /* not USE_CARBON_EVENTS */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10642
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10643 #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
10644 OSStatus
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10645 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
10646 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10647 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
10648 OSStatus err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10649
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10650 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
10651 kEventAttributeNone, &event);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10652 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
10653 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10654 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
10655
77141
a2c0f9d173e8 [TARGET_API_MAC_CARBON] (mac_post_mouse_moved_event):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76746
diff changeset
10656 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
10657 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
10658 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
10659 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10660 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
10661 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10662 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
10663
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10664 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
10665 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
10666 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10667 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
10668 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
10669 kEventPriorityStandard);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10670 if (event)
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10671 ReleaseEvent (event);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10672
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10673 return err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10674 }
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10675
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10676 static void
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10677 mac_set_unicode_keystroke_event (code, buf)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10678 UniChar code;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10679 struct input_event *buf;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10680 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10681 int charset_id, c1, c2;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10682
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10683 if (code < 0x80)
90456
fcea7075c583 (mac_set_unicode_keystroke_event): Don't use MAKE_CHAR.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90428
diff changeset
10684 buf->kind = ASCII_KEYSTROKE_EVENT;
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10685 else
90456
fcea7075c583 (mac_set_unicode_keystroke_event): Don't use MAKE_CHAR.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90428
diff changeset
10686 buf->kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
fcea7075c583 (mac_set_unicode_keystroke_event): Don't use MAKE_CHAR.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90428
diff changeset
10687 buf->code = code;
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10688 }
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10689 #endif
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10690
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10691 /* 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
10692 user. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10693 int
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10694 XTread_socket (sd, expected, hold_quit)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10695 int sd, expected;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10696 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
10697 {
88d1b7a60637 (XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit arg.
Kim F. Storm <storm@cua.dk>
parents: 54150
diff changeset
10698 struct input_event inev;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10699 int count = 0;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10700 #if USE_CARBON_EVENTS
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10701 EventRef eventRef;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10702 EventTargetRef toolbox_dispatcher;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10703 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10704 EventRecord er;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10705 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
10706
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10707 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
10708 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10709 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
10710 return -1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10711 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10712
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10713 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
10714 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10715
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10716 /* 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
10717 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
10718
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
10719 ++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
10720
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10721 #if USE_CARBON_EVENTS
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10722 toolbox_dispatcher = GetEventDispatcherTarget ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10723
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
10724 while (
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
10725 #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
10726 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
10727 #endif
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
10728 !ReceiveNextEvent (0, NULL, kEventDurationNoWait,
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10729 kEventRemoveFromQueue, &eventRef))
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10730 #else /* !USE_CARBON_EVENTS */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10731 while (mac_wait_next_event (&er, 0, true))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10732 #endif /* !USE_CARBON_EVENTS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10733 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10734 int do_help = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10735 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
10736 unsigned long timestamp;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10737
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10738 EVENT_INIT (inev);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10739 inev.kind = NO_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10740 inev.arg = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10741
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10742 #if USE_CARBON_EVENTS
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10743 timestamp = GetEventTime (eventRef) / kEventDurationMillisecond;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10744 #else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10745 timestamp = er.when * (1000 / 60); /* ticks to milliseconds */
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10746 #endif
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10747
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10748 #if USE_CARBON_EVENTS
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10749 /* Handle new events */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10750 if (!mac_convert_event_ref (eventRef, &er))
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10751 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10752 /* There used to be a handler for the kEventMouseWheelMoved
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10753 event here. But as of Mac OS X 10.4, this kind of event
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10754 is not directly posted to the main event queue by
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10755 two-finger scrolling on the trackpad. Instead, some
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10756 private event is posted and it is converted to a wheel
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10757 event by the default handler for the application target.
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10758 The converted one can be received by a Carbon event
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10759 handler installed on a window target. */
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10760 read_socket_inev = &inev;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10761 SendEventToEventTarget (eventRef, toolbox_dispatcher);
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10762 read_socket_inev = NULL;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10763 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10764 else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10765 #endif /* USE_CARBON_EVENTS */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10766 switch (er.what)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10767 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10768 case mouseDown:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10769 case mouseUp:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10770 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10771 WindowPtr window_ptr;
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
10772 ControlPartCode part_code;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10773 int tool_bar_p = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10774
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10775 #if USE_CARBON_EVENTS
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10776 /* 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
10777 buttons to the correct handler. */
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10778 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10779 != eventNotHandledErr)
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10780 break;
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10781 #endif
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
10782 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
10783
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10784 if (dpyinfo->grabbed && last_mouse_frame
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10785 && FRAME_LIVE_P (last_mouse_frame))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10786 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10787 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
10788 part_code = inContent;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10789 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10790 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10791 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10792 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
10793 if (tip_window && window_ptr == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10794 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10795 HideWindow (tip_window);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10796 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
10797 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10798 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10799
66181
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10800 if (er.what != mouseDown &&
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10801 (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
10802 break;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10803
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10804 switch (part_code)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10805 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10806 case inMenuBar:
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10807 f = mac_focus_frame (dpyinfo);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10808 saved_menu_event_location = er.where;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10809 inev.kind = MENU_BAR_ACTIVATE_EVENT;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10810 XSETFRAME (inev.frame_or_window, f);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10811 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10812
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10813 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
10814 if (
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
10815 #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
10816 FrontNonFloatingWindow ()
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
10817 #else
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
10818 FrontWindow ()
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
10819 #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
10820 != 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
10821 || (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
10822 != dpyinfo->x_focus_frame))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10823 SelectWindow (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10824 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10825 {
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
10826 ControlPartCode control_part_code;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10827 ControlHandle ch;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10828 Point mouse_loc = er.where;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10829 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10830 ControlKind control_kind;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10831 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10832
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10833 f = mac_window_to_frame (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10834 /* convert to local coordinates of new window */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10835 SetPortWindowPort (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10836
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10837 GlobalToLocal (&mouse_loc);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10838 #if TARGET_API_MAC_CARBON
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10839 ch = FindControlUnderMouse (mouse_loc, window_ptr,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10840 &control_part_code);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10841 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10842 if (ch)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10843 GetControlKind (ch, &control_kind);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10844 #endif
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10845 #else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10846 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
10847 &ch);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10848 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10849
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10850 #if USE_CARBON_EVENTS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10851 inev.code = mac_get_mouse_btn (eventRef);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10852 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
10853 #else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10854 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
10855 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
10856 #endif
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10857 XSETINT (inev.x, mouse_loc.h);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10858 XSETINT (inev.y, mouse_loc.v);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10859
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10860 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
10861 || (ch != 0
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10862 #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
10863 /* 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
10864 a progress indicator is clicked. */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10865 && 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
10866 #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
10867 #ifdef MAC_OSX
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10868 && 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
10869 #endif /* MAC_OSX */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10870 #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
10871 ))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10872 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10873 struct scroll_bar *bar;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10874
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10875 if (dpyinfo->grabbed && tracked_scroll_bar)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10876 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10877 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
10878 #ifndef USE_TOOLKIT_SCROLL_BARS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10879 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
10880 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10881 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10882 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10883 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
10884 #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
10885 /* 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
10886 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
10887 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
10888 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
10889 &er, &inev);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10890 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
10891 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
10892 mouse_loc, &inev);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10893 else
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10894 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
10895 #else /* not USE_TOOLKIT_SCROLL_BARS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10896 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
10897 &er, &inev);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10898 if (er.what == mouseDown
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10899 && control_part_code == kControlIndicatorPart)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10900 tracked_scroll_bar = bar;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10901 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10902 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
10903 #endif /* not USE_TOOLKIT_SCROLL_BARS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10904 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10905 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10906 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10907 Lisp_Object window;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10908 int x = mouse_loc.h;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10909 int y = mouse_loc.v;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10910
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10911 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
10912 if (EQ (window, f->tool_bar_window))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10913 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10914 if (er.what == mouseDown)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10915 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
10916 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10917 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
10918 inev.modifiers);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10919 tool_bar_p = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10920 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10921 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10922 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10923 XSETFRAME (inev.frame_or_window, f);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10924 inev.kind = MOUSE_CLICK_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10925 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10926 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10927
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10928 if (er.what == mouseDown)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10929 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10930 dpyinfo->grabbed |= (1 << inev.code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10931 last_mouse_frame = f;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10932
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10933 if (!tool_bar_p)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10934 last_tool_bar_item = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10935 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10936 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10937 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10938 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
10939 /* 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
10940 previously pressed, that would be because
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10941 of multi-button emulation. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10942 dpyinfo->grabbed = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10943 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10944 dpyinfo->grabbed &= ~(1 << inev.code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10945 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10946
66181
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10947 /* 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
10948 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
10949 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
10950 ButtonPress. */
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10951 if (f != 0)
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10952 f->mouse_moved = 0;
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10953
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10954 #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
10955 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
10956 || (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
10957 && (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
10958 #endif
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10959 switch (er.what)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10960 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10961 case mouseDown:
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10962 inev.modifiers |= down_modifier;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10963 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10964 case mouseUp:
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10965 inev.modifiers |= up_modifier;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10966 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10967 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10968 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10969 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10970
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10971 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
10972 #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
10973 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
10974 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
10975 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
10976 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
10977 break;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
10978 }
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10979 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
10980 && (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
10981 != errUserWantsToDragWindow))
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10982 break;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10983 DragWindow (window_ptr, er.where, NULL);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10984 #else /* not TARGET_API_MAC_CARBON */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10985 DragWindow (window_ptr, er.where, &qd.screenBits.bounds);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10986 #endif /* not TARGET_API_MAC_CARBON */
56271
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
10987 /* Update the frame parameters. */
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10988 #if !USE_CARBON_EVENTS
56271
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
10989 {
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
10990 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
10991
56271
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
10992 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
10993 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
10994 }
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10995 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10996 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10997
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10998 case inGoAway:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10999 if (TrackGoAway (window_ptr, er.where))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11000 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11001 inev.kind = DELETE_WINDOW_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11002 XSETFRAME (inev.frame_or_window,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11003 mac_window_to_frame (window_ptr));
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11004 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11005 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11006
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11007 /* window resize handling added --ben */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11008 case inGrow:
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11009 do_grow_window (window_ptr, &er);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
11010 break;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11011
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11012 /* window zoom handling added --ben */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11013 case inZoomIn:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11014 case inZoomOut:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11015 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
11016 do_zoom_window (window_ptr, part_code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11017 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11018
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11019 default:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11020 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11021 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11022 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11023 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11024
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11025 case updateEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11026 #if USE_CARBON_EVENTS
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11027 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11028 != eventNotHandledErr)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
11029 break;
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
11030 #else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11031 do_window_update ((WindowPtr) er.message);
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
11032 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11033 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11034
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11035 case osEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11036 #if USE_CARBON_EVENTS
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11037 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11038 != eventNotHandledErr)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
11039 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11040 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11041 switch ((er.message >> 24) & 0x000000FF)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11042 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11043 case suspendResumeMessage:
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11044 #if USE_MAC_TSM
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11045 if (er.message & resumeFlag)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11046 mac_tsm_resume ();
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11047 else
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11048 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
11049 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11050 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11051
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11052 case mouseMovedMessage:
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11053 #if !USE_CARBON_EVENTS
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11054 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
11055 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
11056 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11057 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
11058 help_echo_string = Qnil;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11059
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11060 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
11061 && 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
11062 f = last_mouse_frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11063 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11064 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
11065
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11066 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
11067 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11068 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
11069 clear_mouse_face (dpyinfo);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11070 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11071
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11072 if (f)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11073 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11074 WindowPtr wp = FRAME_MAC_WINDOW (f);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11075 Point mouse_pos = er.where;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11076
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11077 SetPortWindowPort (wp);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11078
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11079 GlobalToLocal (&mouse_pos);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11080
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11081 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
11082 #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
11083 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
11084 mouse_pos, &inev);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11085 #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
11086 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
11087 mouse_pos.v
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11088 - 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
11089 er.when * (1000 / 60));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11090 #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
11091 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11092 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11093 /* Generate SELECT_WINDOW_EVENTs when needed. */
72736
f6b18b9949d1 * xdisp.c (mouse_autoselect_window): Removed.
Chong Yidong <cyd@stupidchicken.com>
parents: 72706
diff changeset
11094 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
11095 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11096 Lisp_Object window;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11097
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11098 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
11099 mouse_pos.h,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11100 mouse_pos.v,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11101 0, 0, 0, 0);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11102
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11103 /* 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
11104 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
11105 event was not in it. Minibuffer window
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11106 will be selected iff it is active. */
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11107 if (WINDOWP (window)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11108 && !EQ (window, last_window)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11109 && !EQ (window, selected_window))
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11110 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11111 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
11112 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
11113 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11114
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11115 last_window=window;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11116 }
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
11117 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
11118 help_echo_string = previous_help_echo_string;
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11119 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11120 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11121
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11122 /* If the contents of the global variable
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11123 help_echo_string has changed, generate a
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11124 HELP_EVENT. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11125 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
11126 do_help = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11127 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11128 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11129 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11130
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11131 case activateEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11132 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11133 WindowPtr window_ptr = (WindowPtr) er.message;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11134
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11135 #if USE_CARBON_EVENTS
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11136 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11137 != eventNotHandledErr)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11138 break;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11139 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11140 if (window_ptr == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11141 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11142 HideWindow (tip_window);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11143 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11144 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11145
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11146 if (!is_emacs_window (window_ptr))
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11147 break;
57373
38e45bf0128a (x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents: 57357
diff changeset
11148
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11149 if ((er.modifiers & activeFlag) != 0)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11150 {
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11151 /* A window has been activated */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11152 Point mouse_loc = er.where;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11153
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11154 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
11155
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11156 SetPortWindowPort (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11157 GlobalToLocal (&mouse_loc);
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11158 /* 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
11159 so update things that depend on mouse position. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11160 note_mouse_movement (mac_window_to_frame (window_ptr),
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11161 &mouse_loc);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11162 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11163 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11164 {
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11165 /* A window has been deactivated */
76331
ace87cb85f08 (x_scroll_bar_create, XTread_socket): Replace #if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76114
diff changeset
11166 #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
11167 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
11168 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11169 struct input_event event;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11170
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11171 EVENT_INIT (event);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11172 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
11173 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
11174 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
11175 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11176 event.timestamp = timestamp;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11177 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
11178 count++;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11179 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11180 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11181 #endif
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11182 dpyinfo->grabbed = 0;
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11183
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11184 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
11185
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11186 f = mac_window_to_frame (window_ptr);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11187 if (f == dpyinfo->mouse_face_mouse_frame)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11188 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11189 /* 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
11190 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
11191 frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11192 clear_mouse_face (dpyinfo);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11193 dpyinfo->mouse_face_mouse_frame = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11194 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11195
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11196 /* 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
11197 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
11198 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
11199 mouse leaves the frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11200 if (any_help_event_p)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11201 do_help = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11202 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11203 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11204 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11205
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11206 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
11207 case keyUp:
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11208 case autoKey:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11209 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11210 int keycode = (er.message & keyCodeMask) >> 8;
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11211 static SInt16 last_key_script = -1;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11212 SInt16 current_key_script;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11213 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
11214
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
11215 #if USE_CARBON_EVENTS && defined (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
11216 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
11217 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
11218 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
11219 #endif
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
11220 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
11221
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11222 #if USE_CARBON_EVENTS && (defined (MAC_OSX) || USE_MAC_TSM)
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11223 /* When using Carbon Events, we need to pass raw keyboard
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11224 events to the TSM ourselves. If TSM handles it, it
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11225 will pass back noErr, otherwise it will pass back
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11226 "eventNotHandledErr" and we can process it
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11227 normally. */
70874
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11228 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
11229 & ~(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
11230 & ~(mac_pass_control_to_system ? controlKey : 0)))
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11231 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11232 OSStatus err;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11233
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11234 read_socket_inev = &inev;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11235 err = SendEventToEventTarget (eventRef, toolbox_dispatcher);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11236 read_socket_inev = NULL;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11237 if (err != eventNotHandledErr)
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11238 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11239 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11240 #endif
70735
d0bad3102124 (XTread_socket) [TARGET_API_MAC_CARBON && MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70563
diff changeset
11241 if (er.what == keyUp)
d0bad3102124 (XTread_socket) [TARGET_API_MAC_CARBON && MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70563
diff changeset
11242 break;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11243
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11244 ObscureCursor ();
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11245
69773
9dd22c1de682 (XTread_socket): Initialize variable `f' before its use.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69660
diff changeset
11246 f = mac_focus_frame (dpyinfo);
9dd22c1de682 (XTread_socket): Initialize variable `f' before its use.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69660
diff changeset
11247
69660
bc015cae7e3e (XTread_socket): Don't let key-press clear mouse face
Kim F. Storm <storm@cua.dk>
parents: 69512
diff changeset
11248 if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
bc015cae7e3e (XTread_socket): Don't let key-press clear mouse face
Kim F. Storm <storm@cua.dk>
parents: 69512
diff changeset
11249 && !EQ (f->tool_bar_window, dpyinfo->mouse_face_window))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11250 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11251 clear_mouse_face (dpyinfo);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11252 dpyinfo->mouse_face_hidden = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11253 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11254
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11255 current_key_script = GetScriptManagerVariable (smKeyScript);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11256 if (last_key_script != current_key_script)
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11257 {
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11258 struct input_event event;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11259
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11260 EVENT_INIT (event);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11261 event.kind = LANGUAGE_CHANGE_EVENT;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11262 event.arg = Qnil;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11263 event.code = current_key_script;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11264 event.timestamp = timestamp;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11265 kbd_buffer_store_event (&event);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11266 count++;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11267 last_key_script = current_key_script;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11268 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11269
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11270 #if 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
11271 if (inev.kind != NO_EVENT)
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11272 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11273 #endif
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11274
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11275 #ifdef MAC_OSX
70874
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11276 if (mapped_modifiers & kEventKeyModifierFnMask
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11277 && keycode <= 0x7f
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11278 && fn_keycode_to_keycode_table[keycode])
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11279 keycode = fn_keycode_to_keycode_table[keycode];
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11280 #endif
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11281 if (keycode <= 0x7f && keycode_to_xkeysym_table [keycode])
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11282 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11283 inev.kind = NON_ASCII_KEYSTROKE_EVENT;
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11284 inev.code = 0xff00 | keycode_to_xkeysym_table [keycode];
70874
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11285 #ifdef MAC_OSX
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11286 if (modifiers & kEventKeyModifierFnMask
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11287 && keycode <= 0x7f
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11288 && fn_keycode_to_keycode_table[keycode] == keycode)
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11289 modifiers &= ~kEventKeyModifierFnMask;
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11290 #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
11291 }
70874
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11292 else 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
11293 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11294 /* translate the keycode back to determine the
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11295 original key */
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11296 #ifdef MAC_OSX
76038
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11297 UCKeyboardLayout *uchr_ptr = NULL;
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11298 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11299 OSStatus err;
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11300 KeyboardLayoutRef layout;
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11301
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11302 err = KLGetCurrentKeyboardLayout (&layout);
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11303 if (err == noErr)
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11304 KLGetKeyboardLayoutProperty (layout, kKLuchrData,
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11305 (const void **) &uchr_ptr);
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11306 #else
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11307 static SInt16 last_key_layout_id = 0;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11308 static Handle uchr_handle = (Handle)-1;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11309 SInt16 current_key_layout_id =
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11310 GetScriptVariable (current_key_script, smScriptKeys);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11311
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11312 if (uchr_handle == (Handle)-1
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11313 || last_key_layout_id != current_key_layout_id)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11314 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11315 uchr_handle = GetResource ('uchr', current_key_layout_id);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11316 last_key_layout_id = current_key_layout_id;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11317 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11318 if (uchr_handle)
76038
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11319 uchr_ptr = (UCKeyboardLayout *)*uchr_handle;
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11320 #endif
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11321
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11322 if (uchr_ptr)
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11323 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11324 OSStatus status;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11325 UInt16 key_action = er.what - keyDown;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11326 UInt32 modifier_key_state =
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11327 (modifiers & ~mapped_modifiers) >> 8;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11328 UInt32 keyboard_type = LMGetKbdType ();
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11329 SInt32 dead_key_state = 0;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11330 UniChar code;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11331 UniCharCount actual_length;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11332
76038
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11333 status = UCKeyTranslate (uchr_ptr,
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11334 keycode, key_action,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11335 modifier_key_state,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11336 keyboard_type,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11337 kUCKeyTranslateNoDeadKeysMask,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11338 &dead_key_state,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11339 1, &actual_length, &code);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11340 if (status == noErr && actual_length == 1)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11341 mac_set_unicode_keystroke_event (code, &inev);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11342 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11343 #endif /* MAC_OSX */
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11344
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11345 if (inev.kind == NO_EVENT)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11346 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11347 /* This code comes from Keyboard Resource,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11348 Appendix C of IM - Text. This is necessary
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11349 since shift is ignored in KCHR table
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11350 translation when option or command is pressed.
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11351 It also does not translate correctly
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11352 control-shift chars like C-% so mask off shift
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11353 here also. */
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11354 /* Mask off modifier keys that are mapped to some
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11355 Emacs modifiers. */
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11356 int new_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
11357 /* set high byte of keycode to modifier high byte*/
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11358 int new_keycode = keycode | new_modifiers;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11359 Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11360 unsigned long some_state = 0;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11361 UInt32 new_char_code;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11362
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11363 new_char_code = KeyTranslate (kchr_ptr, new_keycode,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11364 &some_state);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11365 if (new_char_code == 0)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11366 /* Seems like a dead key. Append up-stroke. */
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11367 new_char_code = KeyTranslate (kchr_ptr,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11368 new_keycode | 0x80,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11369 &some_state);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11370 if (new_char_code)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11371 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11372 inev.kind = ASCII_KEYSTROKE_EVENT;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11373 inev.code = new_char_code & 0xff;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11374 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11375 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11376 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11377
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11378 if (inev.kind == NO_EVENT)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11379 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11380 inev.kind = ASCII_KEYSTROKE_EVENT;
71965
2034e7b135a1 (XTread_socket): Undo previous change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71963
diff changeset
11381 inev.code = er.message & charCodeMask;
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11382 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11383
70874
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11384 inev.modifiers = mac_to_emacs_modifiers (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
11385 inev.modifiers |= (extra_keyboard_modifiers
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11386 & (meta_modifier | alt_modifier
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11387 | hyper_modifier | super_modifier));
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11388 XSETFRAME (inev.frame_or_window, f);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11389
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11390 #if TARGET_API_MAC_CARBON
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11391 if (inev.kind == ASCII_KEYSTROKE_EVENT
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11392 && inev.code >= 0x80 && inev.modifiers)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11393 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11394 OSStatus err;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11395 TextEncoding encoding = kTextEncodingMacRoman;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11396 TextToUnicodeInfo ttu_info;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11397
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11398 UpgradeScriptInfoToTextEncoding (current_key_script,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11399 kTextLanguageDontCare,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11400 kTextRegionDontCare,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11401 NULL, &encoding);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11402 err = CreateTextToUnicodeInfoByEncoding (encoding, &ttu_info);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11403 if (err == noErr)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11404 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11405 UniChar code;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11406 Str255 pstr;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11407 ByteCount unicode_len;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11408
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11409 pstr[0] = 1;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11410 pstr[1] = inev.code;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11411 err = ConvertFromPStringToUnicode (ttu_info, pstr,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11412 sizeof (UniChar),
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11413 &unicode_len, &code);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11414 if (err == noErr && unicode_len == sizeof (UniChar))
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11415 mac_set_unicode_keystroke_event (code, &inev);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11416 DisposeTextToUnicodeInfo (&ttu_info);
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11417 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11418 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11419 #endif
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11420 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11421 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11422
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11423 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
11424 AEProcessAppleEvent (&er);
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11425 break;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11426
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11427 default:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11428 break;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11429 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11430 #if USE_CARBON_EVENTS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11431 ReleaseEvent (eventRef);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11432 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11433
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11434 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
11435 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11436 inev.timestamp = timestamp;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11437 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
11438 count++;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11439 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11440
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11441 if (do_help
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11442 && !(hold_quit && hold_quit->kind != NO_EVENT))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11443 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11444 Lisp_Object frame;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11445
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11446 if (f)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11447 XSETFRAME (frame, f);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11448 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11449 frame = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11450
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11451 if (do_help > 0)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
11452 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11453 any_help_event_p = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11454 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
11455 help_echo_object, help_echo_pos);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11456 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11457 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11458 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11459 help_echo_string = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11460 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
11461 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11462 count++;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11463 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11464
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11465 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11466
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11467 /* 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
11468 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
11469 /* ??? 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
11470 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
11471 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11472 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
11473 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
11474 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11475
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11476 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
11477 {
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11478 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
11479 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
11480 }
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11481
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
11482 #if !USE_CARBON_EVENTS
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11483 /* 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
11484 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
11485 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
11486 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
11487 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11488 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
11489
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11490 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
11491 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11492 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
11493
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11494 /* 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
11495 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
11496 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
11497 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
11498
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11499 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
11500 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
11501 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11502 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11503 #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
11504
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
11505 --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
11506 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11507 return count;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11508 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11509
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11510
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11511 /* 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
11512 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
11513 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
11514 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
11515 #ifdef __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11516 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11517 __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
11518 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11519 #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
11520 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11521
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11522 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11523 __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
11524 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11525 #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
11526 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11527 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11528
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11529 #ifdef MAC_OS8
47634
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
11530 void
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
11531 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
11532 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11533 Lisp_Object frame;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11534 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
11535
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11536 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
11537
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11538 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
11539 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
11540 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
11541 bzero (f->output_data.mac, sizeof (struct mac_output));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11542
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11543 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
11544
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
11545 FRAME_COLS (f) = 96;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
11546 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
11547
53722
4f64eb1ea148 Move setting of scroll bars from make_mac_frame to
Steven Tamm <steventamm@mac.com>
parents: 53651
diff changeset
11548 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
11549 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
11550
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11551 FRAME_DESIRED_CURSOR (f) = FILLED_BOX_CURSOR;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11552
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11553 f->output_data.mac->cursor_pixel = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11554 f->output_data.mac->border_pixel = 0x00ff00;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11555 f->output_data.mac->mouse_pixel = 0xff00ff;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11556 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
11557
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
11558 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
11559 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
11560 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
11561 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
11562 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
11563 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
11564
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11565 FRAME_FONTSET (f) = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11566 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
11567 f->left_pos = 8;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11568 f->top_pos = 32;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11569 f->border_width = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11570
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11571 f->internal_border_width = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11572
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11573 f->auto_raise = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11574 f->auto_lower = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11575
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11576 f->new_text_cols = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11577 f->new_text_lines = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11578
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11579 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
11580 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
11581 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
11582
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11583 BLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11584
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11585 if (!(FRAME_MAC_WINDOW (f) =
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11586 NewCWindow (NULL, &r, "\p", true, dBoxProc,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11587 (WindowPtr) -1, 1, (long) f->output_data.mac)))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11588 abort ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11589 /* 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
11590 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
11591
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11592 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
11593
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11594 x_make_gc (f);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11595
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11596 /* 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
11597 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
11598
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11599 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
11600 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
11601 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
11602 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
11603 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
11604 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
11605 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
11606 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
11607 build_string ("white")), Qnil));
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11608 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11609 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11610
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11611
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11612 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11613 Initialization
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11614 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11615
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11616 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
11617
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
11618 static XrmDatabase
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11619 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
11620 const char *xrm_option;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11621 {
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
11622 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
11623
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
11624 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
11625 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
11626 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
11627
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
11628 return database;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11629 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11630
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11631 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
11632 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
11633 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
11634 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
11635 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
11636 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11637 struct mac_display_info *dpyinfo;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11638
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11639 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
11640
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11641 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
11642 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11643 mac_initialize ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11644 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
11645 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11646
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11647 if (x_display_list)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11648 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
11649
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11650 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
11651 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
11652
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11653 #ifdef MAC_OSX
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11654 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
11655 = (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
11656 + SCHARS (Vsystem_name)
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11657 + 2);
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11658 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
11659 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
11660 #else
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11661 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
11662 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
11663 #endif
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11664
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11665 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
11666 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
11667 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
11668
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11669 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
11670
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11671 dpyinfo->grabbed = 0;
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11672 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
11673 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
11674
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11675 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
11676 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
11677 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
11678 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
11679 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
11680 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
11681
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
11682 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
11683
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11684 /* Put this display on the chain. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11685 dpyinfo->next = x_display_list;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11686 x_display_list = dpyinfo;
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 /* 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
11689 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
11690 Fcons (Qnil, dpyinfo->xrdb)),
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11691 x_display_name_list);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11692 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
11693
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11694 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
11695
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11696 return dpyinfo;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11697 }
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11698
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11699 /* 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
11700
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11701 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11702 x_delete_display (dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11703 struct mac_display_info *dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11704 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11705 int i;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11706
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11707 /* 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
11708 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
11709 if (! NILP (x_display_name_list)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11710 && 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
11711 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
11712 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11713 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11714 Lisp_Object tail;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11715
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11716 tail = x_display_name_list;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11717 while (CONSP (tail) && CONSP (XCDR (tail)))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11718 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11719 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
11720 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11721 XSETCDR (tail, XCDR (XCDR (tail)));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11722 break;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11723 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11724 tail = XCDR (tail);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11725 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11726 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11727
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11728 if (x_display_list == dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11729 x_display_list = dpyinfo->next;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11730 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11731 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11732 struct x_display_info *tail;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11733
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11734 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
11735 if (tail->next == dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11736 tail->next = tail->next->next;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11737 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11738
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11739 /* 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
11740 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
11741 if (dpyinfo->font_table[i].name)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11742 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11743 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
11744 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
11745 xfree (dpyinfo->font_table[i].name);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11746 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11747
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11748 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
11749 {
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11750 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
11751 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
11752 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
11753 }
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11754 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
11755 xfree (dpyinfo->mac_id_name);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11756
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11757 if (x_display_list == 0)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11758 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11759 mac_clear_font_name_table ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11760 bzero (dpyinfo, sizeof (*dpyinfo));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11761 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11762 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11763
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11764
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11765 static void
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11766 init_menu_bar ()
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11767 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11768 #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
11769 OSStatus err;
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11770 MenuRef menu;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11771 MenuItemIndex menu_index;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11772
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11773 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
11774 &menu, &menu_index);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11775 if (err == noErr)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11776 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
11777 #if USE_CARBON_EVENTS
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11778 EnableMenuCommand (NULL, kHICommandPreferences);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11779 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
11780 &menu, &menu_index);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11781 if (err == noErr)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11782 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11783 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
11784 InsertMenuItemTextWithCFString (menu, NULL,
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11785 0, kMenuItemAttrSeparator, 0);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11786 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
11787 0, 0, kHICommandAbout);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11788 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11789 #endif /* USE_CARBON_EVENTS */
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11790 #else /* !MAC_OSX */
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11791 #if USE_CARBON_EVENTS
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11792 SetMenuItemCommandID (GetMenuHandle (M_APPLE), I_ABOUT, kHICommandAbout);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11793 #endif
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11794 #endif
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11795 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11796
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11797 #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
11798 static void
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11799 init_tsm ()
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11800 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11801 #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
11802 static InterfaceTypeList types = {kUnicodeDocument};
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11803 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11804 static InterfaceTypeList types = {kTextService};
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11805 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11806
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11807 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
11808 &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
11809 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11810 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11811
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11812 /* 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
11813
50360
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
11814 extern frame_parm_handler mac_frame_parm_handlers[];
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
11815
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11816 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
11817 {
50360
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
11818 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
11819 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
11820 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
11821 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
11822 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
11823 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
11824 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
11825 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
11826 x_update_window_end,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11827 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
11828 x_flush,
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
11829 #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
11830 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
11831 #else
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
11832 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
11833 #endif
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11834 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
11835 x_get_glyph_overhangs,
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
11836 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
11837 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
11838 #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
11839 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
11840 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
11841 #else
53885
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
11842 0, /* define_fringe_bitmap */
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
11843 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
11844 #endif
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
11845 mac_per_char_metric,
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
11846 mac_encode_char,
59718
d4cb255b034d * dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents: 59655
diff changeset
11847 mac_compute_glyph_string_overhangs,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11848 x_draw_glyph_string,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11849 mac_define_frame_cursor,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11850 mac_clear_frame_area,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11851 mac_draw_window_cursor,
50344
31cf5b909af7 (x_redisplay_interface): Add missing entry for
Andreas Schwab <schwab@suse.de>
parents: 50247
diff changeset
11852 mac_draw_vertical_window_border,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11853 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
11854 };
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11855
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11856 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11857 mac_initialize ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11858 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11859 rif = &x_redisplay_interface;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11860
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11861 clear_frame_hook = x_clear_frame;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11862 ins_del_lines_hook = x_ins_del_lines;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11863 delete_glyphs_hook = x_delete_glyphs;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11864 ring_bell_hook = XTring_bell;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11865 reset_terminal_modes_hook = XTreset_terminal_modes;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11866 set_terminal_modes_hook = XTset_terminal_modes;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11867 update_begin_hook = x_update_begin;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11868 update_end_hook = x_update_end;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11869 set_terminal_window_hook = XTset_terminal_window;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11870 read_socket_hook = XTread_socket;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11871 frame_up_to_date_hook = XTframe_up_to_date;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11872 mouse_position_hook = XTmouse_position;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11873 frame_rehighlight_hook = XTframe_rehighlight;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11874 frame_raise_lower_hook = XTframe_raise_lower;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11875
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11876 set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11877 condemn_scroll_bars_hook = XTcondemn_scroll_bars;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11878 redeem_scroll_bar_hook = XTredeem_scroll_bar;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11879 judge_scroll_bars_hook = XTjudge_scroll_bars;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11880
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11881 scroll_region_ok = 1; /* we'll scroll partial frames */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11882 char_ins_del_ok = 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11883 line_ins_del_ok = 1; /* we'll just blt 'em */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11884 fast_clear_end_of_line = 1; /* X does this well */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11885 memory_below_frame = 0; /* we don't remember what scrolls
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11886 off the bottom */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11887 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
11888
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11889 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
11890 any_help_event_p = 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11891
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11892 /* Try to use interrupt input; if we can't, then start polling. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11893 Fset_input_mode (Qt, Qnil, Qt, Qnil);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11894
57425
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
11895 BLOCK_INPUT;
46121
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11896
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11897 #if TARGET_API_MAC_CARBON
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11898
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11899 #if USE_CARBON_EVENTS
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11900 #ifdef MAC_OSX
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11901 init_service_handler ();
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11902 #endif /* MAC_OSX */
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11903
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11904 init_command_handler ();
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11905
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11906 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
11907
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11908 #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
11909 init_tsm ();
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11910 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11911 #endif /* USE_CARBON_EVENTS */
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
11912
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
11913 #ifdef MAC_OSX
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
11914 init_coercion_handler ();
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
11915
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11916 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
11917
77167
f48e3a655e3d [!TARGET_API_MAC_CARBON] Include Displays.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 77141
diff changeset
11918 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
11919
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
11920 if (!inhibit_window_system)
75834
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
11921 {
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
11922 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
11923
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
11924 SetFrontProcess (&psn);
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
11925 }
46121
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11926 #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
11927 #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
11928
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11929 #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
11930 init_cg_color ();
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
11931
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11932 mac_init_fringe ();
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11933 #endif
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11934
57425
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
11935 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
11936 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11937
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11938
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11939 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11940 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
11941 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11942 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11943 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
11944 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
11945 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11946
67101
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
11947 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
11948 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
11949 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
11950 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
11951 Qsuper = intern ("super"); staticpro (&Qsuper);
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
11952 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
11953 staticpro (&Qmodifier_value);
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
11954
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
11955 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
11956 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
11957 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
11958 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
11959 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
11960
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11961 #if USE_CARBON_EVENTS
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
11962 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
11963 #ifdef MAC_OSX
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11964 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
11965 staticpro (&Qtoolbar_switch_mode);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11966 #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
11967 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
11968 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
11969 #endif
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11970
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11971 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
11972 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
11973 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
11974 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11975 #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
11976 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
11977 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
11978 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
11979 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
11980 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
11981 #endif
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11982 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11983
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11984 #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
11985 Fprovide (intern ("mac-carbon"), Qnil);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11986 #endif
49015
c49640262de0 * macterm.c (syms_of_macterm): Provide the feature "mac-carbon" to
Steven Tamm <steventamm@mac.com>
parents: 49003
diff changeset
11987
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11988 staticpro (&Qreverse);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11989 Qreverse = intern ("reverse");
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11990
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11991 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
11992 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
11993
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11994 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
11995 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
11996
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
11997 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
11998 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
11999
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
12000 #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
12001 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
12002 atsu_font_id_hash = Qnil;
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12003
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12004 staticpro (&fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12005 fm_style_face_attributes_alist = Qnil;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12006 #endif
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12007
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12008 #if USE_MAC_TSM
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12009 staticpro (&saved_ts_script_language_on_focus);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
12010 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
12011 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
12012
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
12013 /* 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
12014 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
12015 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
12016 &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
12017 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
12018 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
12019 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
12020 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
12021
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
12022 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
12023 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
12024
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
12025 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
12026 &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
12027 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
12028 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
12029 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
12030 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
12031 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
12032
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12033 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
12034 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
12035 #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
12036 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
12037 #else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
12038 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
12039 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12040
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12041 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
12042 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
12043
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
12044 /* 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
12045
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
12046 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
12047 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
12048 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
12049 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
12050 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
12051
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
12052 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
12053 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
12054 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
12055 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
12056 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
12057 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
12058 Vmac_option_modifier = Qnil;
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
12059
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
12060 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
12061 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
12062 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
12063 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
12064 Vmac_command_modifier = Qmeta;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
12065
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
12066 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
12067 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
12068 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
12069 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
12070 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
12071 Vmac_function_modifier = Qnil;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
12072
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
12073 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
12074 &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
12075 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
12076 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
12077 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
12078 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
12079 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
12080 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
12081 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
12082 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
12083 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
12084 Vmac_emulate_three_button_mouse = Qnil;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
12085
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
12086 #if USE_CARBON_EVENTS
67666
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
12087 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
12088 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
12089 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
12090 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
12091 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
12092
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
12093 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
12094 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
12095 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
12096
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
12097 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
12098 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
12099 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
12100
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
12101 #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
12102
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
12103 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
12104 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
12105 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
12106 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
12107 #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
12108 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
12109 #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
12110 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
12111 #endif
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
12112
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
12113 /* 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
12114 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
12115 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
12116 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
12117 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
12118 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
12119
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
12120 (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
12121
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
12122 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
12123 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
12124 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
12125 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
12126 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
12127 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
12128
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12129 #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
12130 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
12131 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
12132 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
12133
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
12134 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
12135 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
12136 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
12137 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
12138 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
12139 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
12140 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
12141 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
12142 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12143 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
12144
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
12145 /* arch-tag: f2259165-4454-4c04-a029-a133c8af7b5b
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
12146 (do not change this comment) */