annotate src/macterm.c @ 76218:30dbd05f33f7

*** empty log message ***
author Dan Nicolaescu <dann@ics.uci.edu>
date Wed, 28 Feb 2007 04:09:56 +0000
parents d14fbfc5dd8e
children ace87cb85f08 07774e5c3ff5 dd7c098af727
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>
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
55 #if defined (__MRC__) || (__MSL__ >= 0x6000)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
56 #include <ControlDefinitions.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
57 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
58
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
59 #if __profile__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
60 #include <profiler.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
61 #endif
60364
de784812b4d4 [TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 59899
diff changeset
62 #endif /* not TARGET_API_MAC_CARBON */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
63
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
64 #include "systty.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
65 #include "systime.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
66
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
67 #include <ctype.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
68 #include <errno.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
69 #include <setjmp.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
70 #include <sys/stat.h>
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
71
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
72 #include "charset.h"
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
73 #include "coding.h"
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
74 #include "frame.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
75 #include "dispextern.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
76 #include "fontset.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
77 #include "termhooks.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
78 #include "termopts.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
79 #include "termchar.h"
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
80 #include "disptab.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 "buffer.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 "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
83 #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
84 #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
85 #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
86 #include "keymap.h"
66841
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
87
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
88
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
89
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
90 /* 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
91
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
92 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
93
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
94 /* 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
95 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
96 int mac_use_core_graphics;
59577
a4a748516aa7 * macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents: 59575
diff changeset
97
a4a748516aa7 * macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents: 59575
diff changeset
98
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
99 /* 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
100 start. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
101
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
102 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
103
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
104 /* 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
105 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
106
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
107 /* 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
108 (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
109 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
110
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
111 /* 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
112
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
113 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
114
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
115 /* 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
116 use. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
117
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
118 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
119
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
120 /* 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
121 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
122 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
123 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
124 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
125 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
126 display. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
127
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
128 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
129
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
130 /* This is 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
131 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
132
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
133 /* 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
134 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
135 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
136 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
137
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
138 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
139
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
140 /* 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
141
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
142 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
143
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
144 /* Mouse movement.
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
145
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
146 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
147 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
148 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
149 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
150
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
151 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
152
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
153 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
154 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
155 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
156 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
157 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
158 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
159 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
160 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
161 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
162 is off. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
163
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
164 /* 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
165
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
166 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
167 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
168
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
169 /* 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
170
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
171 If the last X motion event 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
172 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
173 an ordinary motion.
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
174
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
175 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
176 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
177 event. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
178
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
179 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
180
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
181 /* 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
182 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
183 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
184 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
185 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
186 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
187
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
188 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
189
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
190 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
191
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
192 /* 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
193 events. */
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 #ifdef __STDC__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
196 static int 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
197 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
198 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
199 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
200
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
201 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
202
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
203 extern Lisp_Object Qeql;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
204
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
205 /* 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
206
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
207 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
208
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
209 /* 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
210
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
211 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
212
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
213 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
214
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
215 #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
216 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
217 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
218
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
219 #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
220
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
221 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
222 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
223 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
224 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
225 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
226 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
227 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
228 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
229 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
230 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
231 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
232 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
233 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
234 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
235 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
236 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
237 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
238 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
239 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
240 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
241 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
242 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
243 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
244 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
245 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
246 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
247 const EventRecord *,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
248 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
249 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
250 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
251 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
252 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
253 enum text_cursor_kinds));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
254
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
255 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
256 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
257 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
258 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
259 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
260 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
261 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
262 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
263 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
264
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
265 static 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
266 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
267 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
268
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
269 #define GC_FORE_COLOR(gc) (&(gc)->fore_color)
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
270 #define GC_BACK_COLOR(gc) (&(gc)->back_color)
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
271 #define GC_FONT(gc) ((gc)->xgcv.font)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
272 #define FRAME_NORMAL_GC(f) ((f)->output_data.mac->normal_gc)
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
273
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
274 #define CG_SET_FILL_COLOR(context, color) \
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
275 CGContextSetRGBFillColor (context, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
276 RED_FROM_ULONG (color) / 255.0f, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
277 GREEN_FROM_ULONG (color) / 255.0f, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
278 BLUE_FROM_ULONG (color) / 255.0f, 1.0f)
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
279 #if USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
280 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
281 #define CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
282 do { \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
283 if (CGColorGetTypeID != NULL) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
284 CGContextSetFillColorWithColor (context, cg_color); \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
285 else \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
286 CG_SET_FILL_COLOR (context, color); \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
287 } while (0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
288 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
289 #define CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
290 CGContextSetFillColorWithColor (context, cg_color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
291 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
292 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
293 #define CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
294 CG_SET_FILL_COLOR (context, color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
295 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
296 #define CG_SET_FILL_COLOR_WITH_GC_FOREGROUND(context, gc) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
297 CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR (context, (gc)->xgcv.foreground, \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
298 (gc)->cg_fore_color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
299 #define CG_SET_FILL_COLOR_WITH_GC_BACKGROUND(context, gc) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
300 CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR (context, (gc)->xgcv.background, \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
301 (gc)->cg_back_color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
302
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
303
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
304 #define CG_SET_STROKE_COLOR(context, color) \
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
305 CGContextSetRGBStrokeColor (context, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
306 RED_FROM_ULONG (color) / 255.0f, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
307 GREEN_FROM_ULONG (color) / 255.0f, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
308 BLUE_FROM_ULONG (color) / 255.0f, 1.0f)
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
309 #if USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
310 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
311 #define CG_SET_STROKE_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
312 do { \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
313 if (CGColorGetTypeID != NULL) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
314 CGContextSetStrokeColorWithColor (context, cg_color); \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
315 else \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
316 CG_SET_STROKE_COLOR (context, color); \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
317 } while (0)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
318 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
319 #define CG_SET_STROKE_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
320 CGContextSetStrokeColorWithColor (context, cg_color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
321 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
322 #else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
323 #define CG_SET_STROKE_COLOR_MAYBE_WITH_CGCOLOR(context, color, cg_color) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
324 CG_SET_STROKE_COLOR (context, color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
325 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
326 #define CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND(context, gc) \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
327 CG_SET_STROKE_COLOR_MAYBE_WITH_CGCOLOR (context, (gc)->xgcv.foreground, \
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
328 (gc)->cg_fore_color)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
329
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
330 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
331 #define FRAME_CG_CONTEXT(f) ((f)->output_data.mac->cg_context)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
332
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
333 /* Fringe bitmaps. */
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
334
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
335 static int max_fringe_bmp = 0;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
336 static CGImageRef *fringe_bmp = 0;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
337
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
338 static CGColorSpaceRef mac_cg_color_space_rgb;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
339 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
340 static CGColorRef mac_cg_color_black;
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
341 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
342
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
343 static void
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
344 init_cg_color ()
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
345 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
346 mac_cg_color_space_rgb = CGColorSpaceCreateDeviceRGB ();
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
347 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
348 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
349 /* Don't check the availability of CGColorCreate; this symbol is
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
350 defined even in Mac OS X 10.1. */
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
351 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
352 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
353 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
354 float rgba[] = {0.0f, 0.0f, 0.0f, 1.0f};
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
355
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
356 mac_cg_color_black = CGColorCreate (mac_cg_color_space_rgb, rgba);
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
357 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
358 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
359 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
360
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
361 static CGContextRef
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
362 mac_begin_cg_clip (f, gc)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
363 struct frame *f;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
364 GC gc;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
365 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
366 CGContextRef context = FRAME_CG_CONTEXT (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
367
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
368 if (!context)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
369 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
370 QDBeginCGContext (GetWindowPort (FRAME_MAC_WINDOW (f)), &context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
371 FRAME_CG_CONTEXT (f) = context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
372 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
373
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
374 CGContextSaveGState (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
375 CGContextTranslateCTM (context, 0, FRAME_PIXEL_HEIGHT (f));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
376 CGContextScaleCTM (context, 1, -1);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
377 if (gc && gc->n_clip_rects)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
378 CGContextClipToRects (context, gc->clip_rects, gc->n_clip_rects);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
379
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
380 return context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
381 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
382
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
383 static void
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
384 mac_end_cg_clip (f)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
385 struct frame *f;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
386 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
387 CGContextRestoreGState (FRAME_CG_CONTEXT (f));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
388 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
389
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
390 void
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
391 mac_prepare_for_quickdraw (f)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
392 struct frame *f;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
393 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
394 if (f == NULL)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
395 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
396 Lisp_Object rest, frame;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
397 FOR_EACH_FRAME (rest, frame)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
398 if (FRAME_MAC_P (XFRAME (frame)))
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
399 mac_prepare_for_quickdraw (XFRAME (frame));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
400 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
401 else
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
402 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
403 CGContextRef context = FRAME_CG_CONTEXT (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
404
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
405 if (context)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
406 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
407 CGContextSynchronize (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
408 QDEndCGContext (GetWindowPort (FRAME_MAC_WINDOW (f)),
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
409 &FRAME_CG_CONTEXT (f));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
410 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
411 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
412 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
413 #endif
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
414
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
415 static RgnHandle saved_port_clip_region = NULL;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
416
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
417 static void
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
418 mac_begin_clip (gc)
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
419 GC gc;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
420 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
421 static RgnHandle new_region = NULL;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
422
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
423 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
424 saved_port_clip_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
425 if (new_region == NULL)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
426 new_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
427
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
428 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
429 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
430 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
431 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
432 SetClip (new_region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
433 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
434 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
435
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
436 static void
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
437 mac_end_clip (gc)
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
438 GC gc;
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
439 {
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
440 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
441 SetClip (saved_port_clip_region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
442 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
443
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
444
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
445 /* 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
446
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
447 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
448 XFreePixmap (display, pixmap)
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
449 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
450 Pixmap pixmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
451 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
452 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
453 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
454
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
455
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
456 /* 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
457
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
458 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
459 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
460 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
461 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
462 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
463 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
464 #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
465 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
466 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
467
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
468 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
469 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
470 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
471 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
472
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
473 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
474 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
475 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
476 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
477 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
478 CGContextClosePath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
479 CGContextStrokePath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
480 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
481 #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
482 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
483 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
484 if (y1 > y2)
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
485 y1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
486 else if (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
487 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 }
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 (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
490 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
491 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
492 x1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
493 else
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
494 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 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
496
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
497 SetPortWindowPort (FRAME_MAC_WINDOW (f));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
498
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
499 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
500
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
501 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
502 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
503 LineTo (x2, y2);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
504 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
505 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
506 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
507
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
508 /* 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
509
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
510 void
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
511 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
512 Display *display;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
513 Pixmap p;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
514 GC gc;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
515 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
516 {
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
517 CGrafPtr old_port;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
518 GDHandle old_gdh;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
519
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
520 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
521 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
522 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
523 y1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
524 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
525 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 }
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 (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
528 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
529 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
530 x1--;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
531 else
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
532 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 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
534
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
535 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
536 SetGWorld (p, NULL);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
537
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
538 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
539
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
540 LockPixels (GetGWorldPixMap (p));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
541 MoveTo (x1, y1);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
542 LineTo (x2, y2);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
543 UnlockPixels (GetGWorldPixMap (p));
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
544
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
545 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
546 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
547
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
548
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
549 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
550 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
551 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
552 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
553 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
554 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
555 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
556 #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
557 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
558
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
559 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
560 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
561 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
562 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
563 #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
564 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
565
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
566 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
567
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
568 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
569 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
570
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
571 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
572 EraseRect (&r);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
573 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
574
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
575 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
576 #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
577 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
578
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
579
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
580 /* 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
581
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
582 void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
583 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
584 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
585 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
586 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
587 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
588 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
589 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
590
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
591 /* 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
592
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
593 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
594 mac_clear_window (f)
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
595 struct frame *f;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
596 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
597 #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
598 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
599 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
600
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
601 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
602 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
603 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
604 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
605 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
606 #else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
607 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
608
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
609 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
610
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
611 #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
612 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
613 Rect r;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
614
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
615 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
616 EraseRect (&r);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
617 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
618 #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
619 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
620 #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
621 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
622 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
623
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
624
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
625 /* 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
626
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
627 #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
628 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
629 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
630 dest_x, dest_y, overlay_p)
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
631 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
632 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
633 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
634 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
635 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
636 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
637 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
638 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
639 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
640 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
641
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
642 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
643 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
644 {
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
645 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
646 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
647 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
648 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
649 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
650 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
651 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
652 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
653 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
654 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
655 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
656 + 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
657 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
658 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
659 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 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
661 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
662
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
663 #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
664
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
665 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
666 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
667 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
668 GC gc;
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
669 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
670 unsigned short *bits;
53899
e45e1fbbe83e (mac_draw_bitmap): Add overlay_p arg.
Kim F. Storm <storm@cua.dk>
parents: 53885
diff changeset
671 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
672 {
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
673 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
674 Rect r;
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.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
677 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
678 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
679
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
680 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
681
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
682 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
683 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
684 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
685
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
686 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
687 #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
688 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
689 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
690
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
691 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
692 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
693 CopyBits (&bitmap, GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
694 &(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
695 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
696 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
697 #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
698 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
699 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
700 #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
701 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
702
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
703 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
704 }
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
705 #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
706
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
707
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
708 /* 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
709
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
710 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
711 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
712 BitMap *bitmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
713 char *bits;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
714 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
715 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
716 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
717 = { 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
718 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
719 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
720 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
721 int i, j, w1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
722 char *p;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
723
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
724 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
725 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
726 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
727 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
728 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
729 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
730 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
731 for (j = 0; j < w1; j++)
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
732 {
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
733 /* 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
734 unsigned char c = *bits++;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
735 *p++ = (unsigned char)((swap_nibble[c & 0xf] << 4)
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
736 | (swap_nibble[(c>>4) & 0xf]));;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
737 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
738 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
739
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
740 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
741 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
744 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
745 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
746 BitMap *bitmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
747 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
748 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
749 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
750
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
751
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
752 Pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
753 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
754 Display *display; /* not used */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
755 WindowPtr w;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
756 unsigned int width, height;
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
757 unsigned int depth;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
758 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
759 Pixmap pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
760 Rect r;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
761 QDErr err;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
762
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
763 SetPortWindowPort (w);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
764
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
765 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
766 #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
767 if (depth == 1)
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
768 #endif
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
769 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
770 #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
771 else
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
772 /* 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
773 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
774 #endif
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
775 if (err != noErr)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
776 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
777 return pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
778 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
779
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
780
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
781 Pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
782 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
783 Display *display; /* not used */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
784 WindowPtr w;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
785 char *data;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
786 unsigned int width, height;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
787 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
788 unsigned int depth;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
789 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
790 Pixmap pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
791 BitMap bitmap;
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
792 CGrafPtr old_port;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
793 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
794 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
795
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
796 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
797 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
798
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
799 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
800 if (pixmap == NULL)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
801 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
802
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
803 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
804 SetGWorld (pixmap, NULL);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
805 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
806 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
807 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
808 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
809 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
810 LockPixels (GetGWorldPixMap (pixmap));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
811 #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
812 CopyBits (&bitmap, GetPortBitMapForCopyBits (pixmap),
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
813 &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
814 #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
815 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
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 #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
818 UnlockPixels (GetGWorldPixMap (pixmap));
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
819 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
820 mac_free_bitmap (&bitmap);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
821
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
822 return pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
823 }
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
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
826 /* 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
827
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
828 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
829 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
830 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
831 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
832 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
833 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
834 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
835 #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
836 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
837
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
838 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
839 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
840 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
841 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
842 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
843 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
844
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
845 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
846
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
847 RGBForeColor (GC_FORE_COLOR (gc));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
848 SetRect (&r, x, y, x + width, y + height);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
849
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
850 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
851 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
852 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
853 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
854 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
855
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
856
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
857 /* 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
858
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
859 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
860 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
861 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
862 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
863 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
864 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
865 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
866 #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
867 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
868
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
869 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
870 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
871 CGContextStrokeRect (context,
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
872 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
873 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
874 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
875 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
876
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
877 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
878
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
879 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
880 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
881
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
882 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
883 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
884 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
885 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
886 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
887
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
888
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
889 #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
890 static OSStatus
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
891 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
892 ConstUniCharArrayPtr text;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
893 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
894 ATSUStyle style;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
895 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
896 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
897 OSStatus err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
898 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
899
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
900 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
901 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
902 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
903 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
904 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
905 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
906 #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
907 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
908 | kATSLineUseQDRendering
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
909 #else
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
910 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
911 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
912 ;
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
913 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
914
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
915 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
916 kATSUFromTextBeginning,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
917 kATSUToTextEnd,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
918 text_length,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
919 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
920 &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
921 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
922 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
923 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
924 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
925 /* 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
926 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
927 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
928 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
929 else
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
930 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
931 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
932 kATSUFromTextBeginning, kATSUToTextEnd);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
933 if (err == noErr)
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
934 err = 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
935 kATSUFromTextBeginning,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
936 kATSUToTextEnd,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
937 text_length);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
938 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
939
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
940 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
941 *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
942 return err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
943 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
944 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
945
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
946
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
947 static void
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
948 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
949 struct frame *f;
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
950 int x, y;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
951 unsigned int width, height;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
952 {
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
953 Rect r;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
954
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
955 #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
956 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
957 #endif
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
958 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
959
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
960 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
961
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
962 InvertRect (&r);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
963 }
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
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
966 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
967 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
968 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
969 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
970 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
971 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
972 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
973 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
974 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
975 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
976
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
977 #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
978 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
979 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
980 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
981 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
982
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
983 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
984
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
985 #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
986 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
987 int i;
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
988 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
989
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
990 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
991 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
992 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
993 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
994 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
995 nchars,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
996 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
997 &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
998 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
999 return;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1000 #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
1001 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
1002 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1003 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1004 #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
1005 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
1006 #endif
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1007 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
1008 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
1009 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
1010 {
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 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
1012
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1013 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
1014 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
1015 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
1016 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
1017 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
1018 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1019 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
1020 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
1021 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
1022 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
1023 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
1024 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1025 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
1026 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
1027 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
1028 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
1029 }
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1030 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
1031 #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
1032 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1033 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1034 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1035 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
1036 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
1037 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
1038 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
1039 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
1040 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
1041
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1042 #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
1043 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
1044 #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
1045 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
1046 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
1047 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
1048 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1049 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
1050 CGContextScaleCTM (context, 1, -1);
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1051 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
1052 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
1053 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
1054 #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
1055 if (bg_width)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1056 {
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1057 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
1058 CGContextFillRect
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1059 (context,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1060 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
1061 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
1062 }
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1063 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
1064 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
1065 #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
1066 }
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1067 #endif
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1068 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
1069 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
1070 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
1071 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
1072 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
1073 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1074 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
1075 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
1076 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
1077 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
1078 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
1079 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
1080 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
1081 }
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1082 #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
1083 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
1084 context = NULL;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1085 #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
1086 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
1087 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
1088 #endif
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
1089 #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
1090 /* 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
1091 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
1092 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
1093 #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
1094 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
1095 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
1096 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
1097 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1098 }
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1099 #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
1100 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
1101 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
1102 #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
1103 {
59899
96a18b943293 (mac_draw_string_common, x_make_frame_visible): Use
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 59804
diff changeset
1104 #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
1105 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
1106
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1107 if (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
1108 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
1109 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1110 #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
1111 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
1112 #endif
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1113 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
1114 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
1115 #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
1116 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
1117 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1118 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
1119 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
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 else
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 (srcOr);
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1123 #else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1124 /* 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
1125 because:
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1126 - 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
1127 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
1128 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
1129 - 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
1130 - 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
1131 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
1132 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1133 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
1134
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1135 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
1136 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
1137 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
1138 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
1139 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1140 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
1141 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1142 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
1143 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
1144 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
1145 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
1146 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
1147 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
1148 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1149 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
1150 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
1151 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
1152 }
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1153 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
1154 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
1155 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
1156
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1157 #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
1158 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
1159 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
1160 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1161 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1162 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1163
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1164
73298
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1165 /* 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
1166
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1167 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
1168 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
1169 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
1170 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1171 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
1172 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
1173 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
1174 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1175 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
1176 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
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
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1179
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1180 /* 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
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 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
1183 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
1184 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
1185 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1186 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
1187 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
1188 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
1189 {
d16326a96180 (mac_draw_image_string, mac_draw_image_string_16): Add
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73133
diff changeset
1190 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
1191 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
1192 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1193
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1194
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1195 /* 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
1196 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
1197 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
1198 *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
1199
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1200 static OSStatus
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1201 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
1202 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
1203 overall_return, cg_glyph)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1204 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1205 ATSUStyle style;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1206 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1207 void *style;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1208 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1209 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1210 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
1211 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
1212 #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
1213 CGGlyph *cg_glyph;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1214 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1215 void *cg_glyph;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1216 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1217 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1218 OSStatus err = noErr;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1219 int width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1220 Rect char_bounds;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1221
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1222 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1223 if (style)
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 ATSUTextLayout text_layout;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1226 UniChar ch = c;
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 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
1229 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
1230 && (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
1231 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1232 ATSTrapezoid glyph_bounds;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1233
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1234 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
1235 kATSUFromTextBeginning, kATSUToTextEnd,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1236 #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
1237 kATSUseFractionalOrigins,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1238 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1239 kATSUseDeviceOrigins,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1240 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1241 1, &glyph_bounds, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1242 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1243 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1244 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
1245 == 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
1246
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1247 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
1248 - 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 if (font_ascent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1250 *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
1251 if (font_descent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1252 *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
1253 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1254 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1255 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
1256 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1257 err = ATSUMeasureTextImage (text_layout,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1258 kATSUFromTextBeginning, kATSUToTextEnd,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1259 0, 0, &char_bounds);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1260 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1261 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
1262 #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
1263 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
1264 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
1265 OSStatus err1;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1266 ATSUGlyphInfoArray glyph_info_array;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1267 ByteCount count = sizeof (ATSUGlyphInfoArray);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1268
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1269 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
1270 kATSUToTextEnd, NULL, NULL, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1271 if (err1 == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1272 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
1273 kATSUToTextEnd, &count,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1274 &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
1275 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
1276 /* 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
1277 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
1278 && 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
1279 && 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
1280 && 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
1281 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1282 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
1283 *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
1284 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1285 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1286 *cg_glyph = 0;
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 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1289 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1290 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1291 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1292 #endif
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 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
1295 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1296 FontInfo font_info;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1297
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1298 GetFontInfo (&font_info);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1299 if (font_ascent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1300 *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
1301 if (font_descent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1302 *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
1303 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1304 if (overall_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1305 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1306 char ch = c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1307
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1308 width = CharWidth (ch);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1309 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
1310 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
1311 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1312 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1313
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1314 return err;
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
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1318 /* 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
1319
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1320 static int
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1321 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
1322 XFontStruct *font_struct;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1323 XChar2b *string;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1324 int nchars;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1325 XCharStruct *overall_return;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1326 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1327 int i;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1328 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
1329 XCharStruct *pcm;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1330
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1331 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
1332 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1333 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
1334 if (pcm == NULL)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1335 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
1336 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1337 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1338 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
1339 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
1340 width += pcm->width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1341 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1342 string++;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1343 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1344
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1345 overall_return->lbearing = lbearing;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1346 overall_return->rbearing = rbearing;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1347 overall_return->width = width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1348
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1349 /* 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
1350 }
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
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1353 #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
1354 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
1355
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
1356 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
1357 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
1358 {
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1359 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
1360 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
1361
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1362 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 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
1364 kCFPreferencesCurrentApplication,
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1365 &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
1366 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
1367 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
1368 }
e99c1fd37bcd [USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66841
diff changeset
1369
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
1370 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
1371 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
1372 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
1373 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
1374 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
1375 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
1376 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
1377 {
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 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
1379 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
1380 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
1381 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
1382 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
1383 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
1384
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
1385 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
1386 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
1387
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1388 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
1389 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
1390 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
1391 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
1392 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
1393 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
1394 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
1395 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
1396 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
1397 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1398 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
1399
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1400 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
1401 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
1402 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
1403 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
1404 }
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
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1406 #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
1407 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
1408 #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
1409 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
1410 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
1411 {
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 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
1413 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
1414 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
1415 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
1416 #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
1417 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
1418 {
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1419 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
1420 CGContextFillRect
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1421 (context,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1422 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
1423 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
1424 }
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
1425 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
1426 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
1427 #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
1428 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1429 #endif
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1430 CG_SET_FILL_COLOR_WITH_GC_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
1431 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
1432 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
1433 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
1434 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
1435 #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
1436 #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
1437 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
1438 #endif
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1439 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1440 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
1441 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
1442 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
1443 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1444 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
1445 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
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 }
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1448 #if 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
1449 else
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1450 #endif
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1451 #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
1452 #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
1453 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1454 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
1455 {
a019988291b9 [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73575
diff changeset
1456 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
1457 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
1458 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
1459 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
1460 }
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
1461 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1462 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1463 #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
1464 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
1465 #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
1466 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
1467 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
1468 #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
1469
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 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
1471 }
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 #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
1473
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
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
1475 #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
1476 /* 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
1477
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1478 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1479 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
1480 Pixmap src;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1481 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
1482 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1483 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
1484 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
1485 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
1486 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1487 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
1488
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1489 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
1490
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1491 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
1492 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
1493
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1494 ForeColor (blackColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1495 BackColor (whiteColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1496
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1497 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
1498 LockPixels (GetGWorldPixMap (src));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1499 #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
1500 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1501 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1502
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1503 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1504 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1505 CopyBits (GetPortBitMapForCopyBits (src),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1506 GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1507 &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
1508 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1509 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1510 #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
1511 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
1512 &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
1513 #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
1514 UnlockPixels (GetGWorldPixMap (src));
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1515 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
1516
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1517 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
1518 }
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1519
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1520
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1521 static void
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1522 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
1523 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
1524 Pixmap src, mask;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1525 struct frame *f;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1526 GC gc;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1527 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
1528 unsigned int width, height;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1529 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
1530 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1531 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
1532
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1533 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
1534
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1535 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
1536 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
1537
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1538 ForeColor (blackColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1539 BackColor (whiteColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1540
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1541 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
1542 LockPixels (GetGWorldPixMap (src));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1543 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
1544 #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
1545 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1546 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1547
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1548 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1549 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1550 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
1551 GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1552 &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
1553 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1554 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1555 #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
1556 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
1557 &(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
1558 #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
1559 UnlockPixels (GetGWorldPixMap (mask));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1560 UnlockPixels (GetGWorldPixMap (src));
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1561 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
1562
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1563 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
1564 }
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
1565 #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
1566
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1567
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1568 /* 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
1569
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1570 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1571 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
1572 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
1573 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1574 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
1575 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
1576 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
1577 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1578 #if TARGET_API_MAC_CARBON
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1579 Rect src_r;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1580 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
1581
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1582 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
1583 #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
1584 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
1585 #endif
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1586 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
1587 &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
1588 kScrollWindowNoOptions, dummy);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1589 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
1590 #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
1591 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
1592 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
1593
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1594 SetPort (w);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1595
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1596 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
1597 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
1598
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1599 /* 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
1600 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
1601 ForeColor (blackColor);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1602 BackColor (whiteColor);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1603 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
1604 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
1605 mac_end_clip (gc);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1606
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1607 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
1608 #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
1609 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1610
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1611
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1612 /* 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
1613
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1614 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
1615 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
1616 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
1617 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
1618 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
1619 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
1620 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1621 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
1622 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
1623 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
1624 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
1625 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
1626 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
1627 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1628
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1629
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1630 /* 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
1631
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1632 GC
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1633 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
1634 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
1635 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
1636 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
1637 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
1638 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1639 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
1640
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
1641 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
1642 #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
1643 #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
1644 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1645 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1646 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1647 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
1648 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
1649 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
1650 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1651 #endif
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
1652 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
1653
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1654 return gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1655 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1656
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1657
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1658 /* 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
1659
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1660 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1661 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
1662 Display *display;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1663 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1664 {
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1665 if (gc->clip_region)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1666 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
1667 #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
1668 #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
1669 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
1670 #endif
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1671 {
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
1672 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
1673 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
1674 }
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1675 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1676 xfree (gc);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1677 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1678
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1679
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1680 /* 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
1681
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1682 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
1683 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
1684 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
1685 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
1686 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
1687 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
1688 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1689 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
1690 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
1691 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
1692 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
1693 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
1694 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
1695 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1696
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1697
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1698 /* 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
1699
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1700 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1701 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
1702 Display *display;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1703 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1704 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
1705 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1706 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
1707 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1708 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
1709 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
1710 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
1711 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
1712 #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
1713 #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
1714 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1715 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1716 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1717 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
1718 if (color == 0)
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 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
1721 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
1722 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1723 else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1724 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1725 float rgba[4];
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1726
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1727 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
1728 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
1729 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
1730 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
1731 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
1732 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1733 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1734 #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
1735 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1736 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1737
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1738
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1739 /* 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
1740
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1741 void
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1742 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
1743 Display *display;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1744 GC gc;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1745 unsigned long color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1746 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1747 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
1748 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1749 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
1750 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
1751 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
1752 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
1753 #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
1754 #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
1755 if (CGColorGetTypeID != NULL)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1756 #endif
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1757 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1758 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
1759 if (color == 0)
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 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
1762 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
1763 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1764 else
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1765 {
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1766 float rgba[4];
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1767
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1768 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
1769 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
1770 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
1771 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
1772 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
1773 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1774 }
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
1775 #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
1776 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1777 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1778
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 /* 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
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 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
1783 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
1784 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
1785 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
1786 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
1787 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1788 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
1789 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1790
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1791
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1792 /* Mac replacement for XSetClipRectangles. */
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1793
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1794 static void
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1795 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
1796 Display *display;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1797 GC gc;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1798 Rect *rectangles;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1799 int n;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1800 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1801 int i;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1802
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1803 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
1804
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1805 gc->n_clip_rects = n;
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1806 if (n > 0)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1807 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1808 if (gc->clip_region == NULL)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1809 gc->clip_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1810 RectRgn (gc->clip_region, rectangles);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1811 if (n > 1)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1812 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1813 RgnHandle region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1814
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1815 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
1816 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1817 RectRgn (region, rectangles + i);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1818 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
1819 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1820 DisposeRgn (region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1821 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1822 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
1823 #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
1824 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
1825 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1826 Rect *rect = rectangles + i;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1827
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1828 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
1829 rect->right - rect->left,
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1830 rect->bottom - rect->top);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1831 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1832 #endif
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1833 }
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
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1836 /* Mac replacement for XSetClipMask. */
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 static INLINE void
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1839 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
1840 Display *display;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1841 GC gc;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1842 {
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1843 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
1844 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1845
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1846
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1847 /* 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
1848
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1849 void
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1850 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
1851 Display *display;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1852 WindowPtr w;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1853 unsigned long color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1854 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1855 #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
1856 AuxWinHandle aw_handle;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1857 CTabHandle ctab_handle;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1858 ColorSpecPtr ct_table;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1859 short ct_size;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1860 #endif
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1861 RGBColor bg_color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1862
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1863 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
1864 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
1865 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
1866
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1867 #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
1868 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
1869 #else
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1870 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
1871 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1872 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
1873 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
1874 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
1875 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
1876 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
1877 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1878 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
1879 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1880 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
1881 CTabChanged (ctab_handle);
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1882 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
1883 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1884 ct_size--;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1885 }
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 #endif
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
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1890 /* 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
1891
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1892 static void
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1893 x_flush (f)
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1894 struct frame *f;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1895 {
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1896 #if TARGET_API_MAC_CARBON
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1897 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
1898 #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
1899 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
1900 #endif
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1901 if (f)
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1902 QDFlushPortBuffer (GetWindowPort (FRAME_MAC_WINDOW (f)), NULL);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1903 else
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1904 QDFlushPortBuffer (GetQDGlobalsThePort (), NULL);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1905 UNBLOCK_INPUT;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1906 #endif
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1907 }
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1908
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1909
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1910 /* 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
1911 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
1912 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
1913 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
1914 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
1915 performance. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1916
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1917 #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
1918
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1919 #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
1920 static void
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1921 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
1922 struct frame *f;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1923 {
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1924 BLOCK_INPUT;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1925 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
1926 UNBLOCK_INPUT;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1927 }
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
1928 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1929
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1930 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1931 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
1932 ***********************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1933
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1934 /* 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
1935 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
1936 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
1937 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
1938
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1939 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1940 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
1941 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
1942 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1943 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1944 /* 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
1945 periodically checked with ReceiveNextEvent if
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1946 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
1947 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
1948 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
1949 update of a frame. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1950 BLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1951 DisableScreenUpdates ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1952 UNBLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1953 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1954 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1955
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1956
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1957 /* 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
1958 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
1959 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
1960
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1961 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1962 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
1963 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
1964 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1965 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
1966 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
1967
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1968 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
1969 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
1970
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1971 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1972
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1973 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
1974 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1975 /* 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
1976 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
1977
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1978 /* 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
1979 highlighting. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1980 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
1981 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
1982
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1983 #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
1984 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
1985 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
1986 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
1987 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
1988 here to prevent it from being scrolled. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1989
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1990 /* 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
1991 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
1992 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
1993 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
1994 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
1995 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
1996 && 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
1997 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1998 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1999
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
2000 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
2001 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
2002 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2003
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2004 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
2005 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
2006 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2007 #endif /* 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2008 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2009
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2010 UNBLOCK_INPUT;
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
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2014 /* 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
2015
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2016 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2017 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
2018 struct window *w;
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2019 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
2020 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2021 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
2022 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
2023
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2024 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
2025 if (face)
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2026 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
2027 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
2028
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2029 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
2030 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2031
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2032 /* 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
2033
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2034 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
2035 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
2036
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2037 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
2038 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
2039 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
2040
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2041 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
2042 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
2043 here. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2044
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2045 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2046 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
2047 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
2048 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
2049 {
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2050 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
2051
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2052 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
2053 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2054 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2055
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2056 if (cursor_on_p)
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2057 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
2058 output_cursor.vpos,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
2059 output_cursor.x, output_cursor.y);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2060
57373
38e45bf0128a (x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents: 57357
diff changeset
2061 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
2062 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
2063
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2064 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2065 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2066
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2067 /* If 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
2068 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
2069 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
2070 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2071 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
2072 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
2073 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
2074 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2075
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2076 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
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2080 /* 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
2081 update_end. */
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2084 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
2085 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
2086 {
56890
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2087 /* Mouse highlight may be displayed again. */
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2088 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
2089
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
2090 BLOCK_INPUT;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2091 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2092 EnableScreenUpdates ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
2093 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2094 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
2095 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2096 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2097
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2098
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2099 /* 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
2100 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
2101 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
2102
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2103 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2104 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
2105 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
2106 {
55539
db942c4b4345 macterm.c (x_flush, XTframe_up_to_date): use FRAME_MAC_P
Steven Tamm <steventamm@mac.com>
parents: 55412
diff changeset
2107 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
2108 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2109 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
2110
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2111 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
2112 || 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
2113 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2114 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2115 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
2116 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
2117 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
2118 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
2119 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
2120 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2121 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2122 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2123 }
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 /* 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
2127 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
2128 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
2129 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
2130 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
2131 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
2132
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2133 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2134 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
2135 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
2136 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2137 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
2138 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
2139 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
2140
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2141 xassert (w);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2142
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2143 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
2144 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
2145
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2146 /* 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
2147 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
2148 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
2149 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
2150 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
2151 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
2152 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
2153 && 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
2154 && (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
2155 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
2156 width != 0)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2157 && (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
2158 height > 0))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2159 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2160 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
2161
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2162 /* 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
2163 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
2164 && 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
2165 y -= width;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2166
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2167 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2168 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
2169 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
2170 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2171 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2172 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2173
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 /* 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
2176 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
2177 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
2178 drawn. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2179
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2180 static void
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2181 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
2182 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
2183 struct glyph_row *row;
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2184 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
2185 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2186 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
2187 Display *display = FRAME_MAC_DISPLAY (f);
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2188 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
2189 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
2190
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2191 /* 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
2192 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
2193 if (p->y < rowY)
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2194 {
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2195 /* 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
2196 visible last row. */
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2197 int oldY = row->y;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2198 int oldVH = row->visible_height;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2199 row->visible_height = p->h;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2200 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
2201 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
2202 row->y = oldY;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2203 row->visible_height = oldVH;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2204 }
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2205 else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2206 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
2207
53885
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
2208 if (p->bx >= 0 && !p->overlay_p)
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2209 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2210 #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
2211 /* 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
2212 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
2213 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
2214 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
2215 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
2216 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
2217 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2218 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
2219 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2220
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2221 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
2222
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2223 #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
2224 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
2225 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
2226 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2227 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2228
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2229 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
2230 #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
2231 && 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
2232 #endif
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2233 )
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2234 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2235 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
2236
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2237 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
2238 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
2239 (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
2240 ? (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
2241 : 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
2242 : 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
2243 #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
2244 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
2245 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
2246 #else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2247 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
2248 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
2249 #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
2250 XSetForeground (display, face->gc, gcv.foreground);
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2251 }
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2252
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2253 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
2254 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2255
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2256 #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
2257 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
2258 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
2259 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
2260 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
2261 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
2262 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2263 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
2264 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
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 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
2267 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2268 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
2269 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
2270 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
2271 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
2272 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
2273 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2274
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2275 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
2276 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
2277 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
2278 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
2279 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
2280 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2281 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
2282 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
2283 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
2284 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
2285 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2286 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2287
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2288 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
2289 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
2290 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
2291 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2292 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
2293 return;
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 (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
2296 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
2297 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
2298 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2299 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2300
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2301
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2302 /* 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
2303 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
2304 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
2305 rarely happens). */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2306
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2307 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2308 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
2309 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2310 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2311
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2312 /* 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
2313 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
2314
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2315 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2316 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
2317 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2318 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2319
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2320
44890
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 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2323 Display Iterator
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 /* 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
2327
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2328 static XCharStruct *x_per_char_metric P_ ((XFontStruct *, XChar2b *));
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2329 static int mac_encode_char P_ ((int, XChar2b *, struct font_info *, int *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2330
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2331
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2332 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
2333 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
2334 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
2335 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
2336 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2337 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
2338 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
2339 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2340 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
2341 pcm++;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2342 }
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
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2345 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
2346 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
2347 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
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 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
2350
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2351 /* 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
2352 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
2353 }
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2354
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2355 /* 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
2356 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
2357
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2358 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
2359 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
2360 XFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2361 XChar2b *char2b;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2362 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2363 /* 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
2364 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
2365
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2366 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
2367
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2368 #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
2369 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
2370 {
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2371 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
2372
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2373 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
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 *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
2376 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
2377 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
2378 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
2379 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
2380 {
70071
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2381 BLOCK_INPUT;
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
2382 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
2383 (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
2384 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
2385 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
2386 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2387 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2388 else
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2389 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2390 #endif
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2391 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
2392 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2393 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
2394 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2395 /* 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
2396 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
2397 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
2398 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
2399 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
2400 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
2401 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
2402 && 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
2403 && 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
2404 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
2405 + (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
2406 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2407 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2408 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2409 /* 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
2410 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
2411 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
2412 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
2413
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2414 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
2415 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
2416
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2417 where:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2418
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2419 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
2420 / = integer division
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2421 \ = integer modulus */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2422 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
2423 && 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
2424 && 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
2425 && 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
2426 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2427 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
2428 + ((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
2429 * (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
2430 + (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
2431 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2432 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2433 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2434 else
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 /* 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
2437 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
2438 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
2439 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
2440 && 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
2441 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
2442 }
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2443 #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
2444 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2445 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2446
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2447 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
2448 || (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
2449 #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
2450 && (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
2451 #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
2452 ))
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2453 ? NULL : pcm);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2454 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2455
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2456 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2457 */
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2458
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2459 static XCharStruct *
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2460 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
2461 XFontStruct *font;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2462 XChar2b *char2b;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2463 int font_type;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2464 {
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2465 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
2466 }
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2467
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2468 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2469 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
2470 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
2471
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2472 static int
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2473 mac_encode_char (c, char2b, font_info, two_byte_p)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2474 int c;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2475 XChar2b *char2b;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2476 struct font_info *font_info;
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2477 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
2478 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2479 int charset = CHAR_CHARSET (c);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2480 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
2481
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2482 /* 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
2483 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
2484 fixed encoding. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2485 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
2486 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2487 /* 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
2488 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
2489
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2490 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
2491 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
2492 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2493 ccl->reg[0] = charset;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2494 ccl->reg[1] = char2b->byte2;
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2495 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
2496 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2497 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2498 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2499 ccl->reg[0] = charset;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2500 ccl->reg[1] = char2b->byte1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2501 ccl->reg[2] = char2b->byte2;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2502 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2503
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2504 ccl_driver (ccl, NULL, NULL, 0, 0, NULL);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2505
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2506 /* 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
2507 program. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2508 if (font->max_byte1 == 0) /* 1-byte font */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2509 char2b->byte1 = 0, char2b->byte2 = ccl->reg[1];
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2510 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2511 char2b->byte1 = ccl->reg[1], char2b->byte2 = ccl->reg[2];
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2512 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2513 else if (font_info->encoding[charset])
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2514 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2515 /* 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
2516 encoding numbers. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2517 int enc = font_info->encoding[charset];
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2518
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2519 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
2520 && 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
2521 char2b->byte1 |= 0x80;
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 == 3)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2524 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
2525
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2526 if (enc == 4)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2527 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2528 int sjis1, sjis2;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2529
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2530 ENCODE_SJIS (char2b->byte1, char2b->byte2, sjis1, sjis2);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2531 char2b->byte1 = sjis1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2532 char2b->byte2 = sjis2;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2533 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2534 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2535
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2536 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
2537 *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
2538
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2539 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
2540 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2541
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2542
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 Glyph display
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
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2548
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2549
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2550 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
2551 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
2552 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
2553 int));
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_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
2555 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
2556 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
2557 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
2558 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
2559 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
2560 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
2561 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
2562 /*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
2563 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
2564 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
2565 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
2566 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
2567 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
2568 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
2569 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
2570 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
2571 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
2572 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
2573 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
2574 Rect *));
44890
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_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
2576 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
2577
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2578 #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
2579 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
2580 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2581
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2582
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2583 /* 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
2584 face. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2585
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2586 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2587 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
2588 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
2589 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2590 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
2591 && 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
2592 && 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
2593 && !s->cmp)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2594 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
2595 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2596 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2597 /* 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
2598 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2599 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
2600
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2601 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
2602 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
2603
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2604 /* 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
2605 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
2606 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
2607 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
2608 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
2609 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
2610 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
2611
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2612 /* 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
2613 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
2614 && 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
2615 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2616 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
2617 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
2618 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2619
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2620 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
2621 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
2622 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
2623
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2624 if (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
2625 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
2626 mask, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2627 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2628 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 = 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
2630
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2631 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
2632 }
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
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 /* 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
2637
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2638 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2639 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
2640 struct glyph_string *s;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2641 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2642 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
2643 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
2644
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2645 /* 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
2646 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
2647 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
2648 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
2649 face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2650
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2651 if (s->first_glyph->type == CHAR_GLYPH)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2652 face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2653 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2654 face_id = FACE_FOR_CHAR (s->f, face, 0);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2655 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
2656 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
2657
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2658 /* 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
2659 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
2660 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
2661 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2662 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2663 /* 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
2664 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
2665 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2666 unsigned long mask;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2667
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2668 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
2669 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
2670 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
2671 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
2672 mask = GCForeground | GCBackground | GCFont;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2673
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2674 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
2675 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
2676 mask, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2677 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2678 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 = XCreateGC (s->display, s->window, mask, &xgcv);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2680
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2681 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
2682 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2683
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2684 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
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2688 /* 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
2689 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
2690 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
2691
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2692 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
2693 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
2694 struct glyph_string *s;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2695 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2696 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
2697 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2698
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2699
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2700 /* 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
2701 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
2702 pattern. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2703
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2704 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
2705 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
2706 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
2707 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2708 PREPARE_FACE_FOR_DISPLAY (s->f, s->face);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2709
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2710 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
2711 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2712 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
2713 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
2714 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2715 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
2716 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2717 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
2718 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
2719 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2720 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
2721 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2722 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
2723 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
2724 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2725 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
2726 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2727 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
2728 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
2729 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2730 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
2731 || 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
2732 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2733 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
2734 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
2735 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2736 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2737 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2738 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
2739 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
2740 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2741
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2742 /* 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
2743 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
2744 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2745
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2746
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2747 /* 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
2748 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
2749
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2750 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
2751 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
2752 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
2753 {
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2754 Rect rects[MAX_CLIP_RECTS];
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2755 int n;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2756
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2757 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
2758 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
2759 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2760
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2761
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2762 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2763 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
2764 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
2765
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2766 static void
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2767 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
2768 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
2769 {
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2770 if (!(s->cmp == NULL
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2771 && 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
2772 return;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2773
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2774 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
2775 #if USE_ATSUI
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2776 || s->font->mac_style
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2777 #endif
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2778 )
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2779 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2780 XCharStruct cs;
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 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
2783 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
2784 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
2785 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2786 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2787 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2788 Rect r;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2789 MacFontStruct *font = s->font;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2790
73133
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2791 #if USE_CG_DRAWING
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2792 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
2793 #endif
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
2794 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
2795
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2796 TextFont (font->mac_fontnum);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2797 TextSize (font->mac_fontsize);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2798 TextFace (font->mac_fontface);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2799
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2800 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
2801
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
2802 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
2803 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
2804 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2805 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2806
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2807
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2808 /* 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
2809
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2810 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
2811 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
2812 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
2813 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
2814 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2815 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
2816 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2817
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2818
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2819 /* 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
2820 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
2821 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
2822 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
2823 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
2824
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2825 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2826 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
2827 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
2828 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
2829 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2830 /* 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
2831 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
2832 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
2833 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2834 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
2835
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2836 #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
2837 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
2838 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2839 /* 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
2840 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
2841 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
2842 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
2843 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
2844 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
2845 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
2846 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
2847 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2848 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2849 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2850 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
2851 || 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
2852 || 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
2853 || force_p)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2854 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2855 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
2856 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
2857 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
2858 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
2859 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2860 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2861 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2862
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 /* 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
2865
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2866 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2867 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
2868 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
2869 {
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2870 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
2871
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2872 /* 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
2873 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
2874 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
2875 && 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
2876 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
2877 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2878 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
2879
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2880 /* 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
2881 loaded. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2882 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
2883 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2884 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
2885 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2886 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
2887 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
2888 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
2889 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
2890 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2891 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2892 else
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 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
2895 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
2896
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2897 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
2898 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
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 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
2901 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
2902 #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
2903 && 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
2904 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2905 )
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2906 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
2907 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
2908
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2909 /* 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
2910 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
2911 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
2912 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
2913 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
2914 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
2915 || (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
2916 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
2917 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2918 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
2919
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2920 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
2921 #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
2922 || 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
2923 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2924 )
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
2925 #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
2926 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
2927 && 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
2928 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
2929 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
2930 ;
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2931 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2932 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2933 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
2934 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
2935 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
2936 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
2937 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
2938 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
2939 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
2940 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2941 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2942
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2943 /* 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
2944
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2945 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2946 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
2947 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
2948 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2949 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
2950
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2951 /* 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
2952 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
2953 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
2954 && 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
2955 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
2956 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2957 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
2958
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2959 /* 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
2960 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
2961 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
2962 this composition. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2963
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2964 /* 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
2965 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
2966 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
2967 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2968 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
2969 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
2970 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
2971 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2972 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2973 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2974 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
2975 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
2976 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
2977 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
2978 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
2979 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2980 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2981
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 #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
2984
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2985 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
2986
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 /* 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
2989 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
2990
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2991 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
2992 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
2993 Widget widget;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2994 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2995 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
2996 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
2997 struct frame *f;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2998
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2999 dpyinfo = x_display_info_for_display (XtDisplay (widget));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3000
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3001 /* 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
3002 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
3003 (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
3004 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
3005 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
3006 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
3007
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3008 /* 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
3009 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
3010 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
3011 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
3012 && (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
3013 (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
3014 && 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
3015 && 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
3016 return f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3017
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3018 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3019 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3020
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3021
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3022 /* 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
3023 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
3024 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
3025 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
3026
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3027 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3028 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
3029 Widget widget;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3030 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3031 XColor *color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3032 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3033 struct frame *f = 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
3034 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
3035 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3036
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3037
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3038 #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
3039
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3040 #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
3041
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3042 /* 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
3043 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
3044 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
3045 color allocated. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3046
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3047 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3048 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
3049 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
3050 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3051 XColor *color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3052 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3053 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
3054 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
3055 int rc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3056
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3057 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
3058 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
3059 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
3060 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3061 /* 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
3062 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
3063 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
3064 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
3065 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
3066 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
3067 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
3068 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
3069
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3070 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
3071 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
3072 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
3073
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3074 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
3075 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3076 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
3077 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
3078 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
3079 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
3080
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3081 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
3082 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3083 nearest = i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3084 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
3085 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3086 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3087
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3088 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
3089 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
3090 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
3091 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
3092 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3093
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3094 #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
3095 if (rc)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3096 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
3097 #endif /* DEBUG_X_COLORS */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3098
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3099 return rc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3100 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3101
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3102
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3103 /* 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
3104 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
3105 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
3106
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3107 unsigned long
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3108 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
3109 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
3110 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
3111 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3112 XColor color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3113
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3114 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
3115 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3116 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
3117 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
3118 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3119 #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
3120 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
3121 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3122 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
3123 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3124
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3125
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3126 /* Allocate 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
3127 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
3128 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
3129
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3130 unsigned long
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3131 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
3132 Display *dpy;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3133 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3134 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
3135 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3136 XColor color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3137
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3138 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
3139 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3140 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
3141 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
3142 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3143 #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
3144 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
3145 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3146 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
3147 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3148
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3149 #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
3150
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3151
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3152 /* 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
3153 boosted.
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 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
3156 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
3157 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
3158 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
3159 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
3160
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3161 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
3162 (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
3163 #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
3164
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3165
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3166 /* 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
3167 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
3168 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
3169 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
3170 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
3171 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
3172
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3173 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3174 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
3175 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
3176 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
3177 double factor;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3178 int delta;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3179 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3180 unsigned long new;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3181 long bright;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3182
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3183 /* 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
3184 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
3185
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3186 /* 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
3187 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
3188 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
3189 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
3190 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
3191
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3192 /* Calculate brightness of COLOR. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3193 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
3194 + 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
3195
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3196 /* 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
3197 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
3198 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
3199 /* 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
3200 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
3201 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3202 /* 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
3203 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
3204 /* The additive adjustment. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3205 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
3206
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3207 if (factor < 1)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3208 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
3209 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
3210 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
3211 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3212 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
3213 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
3214 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
3215 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3216
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3217 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
3218 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
3219 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
3220 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
3221
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3222 /* 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
3223 /* 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
3224
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3225 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
3226 return 0;
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 *color = new;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3229
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3230 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3231 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3232
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3233
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3234 /* 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
3235 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
3236 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
3237 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
3238 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
3239 be allocated, use DEFAULT_PIXEL, instead. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3240
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3241 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3242 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
3243 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
3244 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
3245 double factor;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3246 int delta;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3247 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
3248 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3249 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3250 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
3251 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
3252 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
3253 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
3254 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
3255
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3256 /* 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
3257
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3258 /* 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
3259 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
3260 pixel = background;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3261 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
3262 && 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
3263 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3264 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
3265 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
3266 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3267
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3268 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
3269 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3270 #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
3271 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
3272 mask |= GCStipple;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3273 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3274 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
3275 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3276 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3277 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
3278 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3279
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3280
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3281 /* 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
3282
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3283 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3284 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
3285 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
3286 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3287 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
3288 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
3289
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3290 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
3291 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
3292 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
3293 && s->img->pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3294 && !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
3295 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
3296 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3297 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3298 XGCValues xgcv;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3299
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3300 /* 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
3301 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
3302 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
3303 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3304
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3305 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
3306 || 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
3307 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3308 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
3309 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
3310 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
3311 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
3312 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
3313 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3314 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3315
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 /* 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
3318 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
3319 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
3320 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
3321 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
3322 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
3323 when drawing. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3324
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3325 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3326 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
3327 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
3328 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
3329 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
3330 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
3331 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
3332 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3333 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
3334 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3335 GC gc;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3336
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3337 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
3338 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
3339 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3340 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
3341 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
3342
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3343 /* Top. */
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3344 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
3345 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
3346 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
3347 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
3348 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
3349
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3350 /* Left. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3351 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
3352 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
3353 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
3354 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
3355
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3356 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
3357 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
3358 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
3359 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3360 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
3361 mac_set_clip_rectangles (dpy, gc, clip_rect, 1);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3362
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3363 /* Bottom. */
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3364 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
3365 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
3366 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
3367 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
3368 right_x + 1 - i * right_p, bottom_y - i);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3369
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3370 /* Right. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3371 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
3372 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
3373 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
3374 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
3375
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3376 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
3377 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3378
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3379
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3380 /* 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
3381 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
3382 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
3383 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
3384 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
3385 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
3386
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3387 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3388 x_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
3389 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
3390 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
3391 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
3392 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
3393 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3394 XGCValues xgcv;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3395
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
3396 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
3397 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
3398 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
3399
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3400 /* Top. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3401 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
3402 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
3403
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3404 /* Left. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3405 if (left_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3406 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
3407 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
3408
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3409 /* Bottom. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3410 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
3411 right_x - left_x + 1, width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3412
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3413 /* Right. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3414 if (right_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3415 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
3416 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
3417
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
3418 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
3419 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
3420 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3421
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3422
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3423 /* 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
3424
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3425 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3426 x_draw_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
3427 struct glyph_string *s;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3428 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3429 int 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
3430 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
3431 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
3432 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
3433
59655
369714ad80ed (x_draw_glyph_string_box): Fix last_x for full width rows.
Kim F. Storm <storm@cua.dk>
parents: 59586
diff changeset
3434 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
3435 ? 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
3436 : window_box_right (s->w, s->area));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3437
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3438 /* 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
3439 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
3440 ? 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
3441 : 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
3442
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3443 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
3444 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
3445 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
3446 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
3447 ? last_x - 1
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3448 : 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
3449 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
3450 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
3451
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3452 left_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
3453 || (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
3454 && (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
3455 || 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
3456 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
3457 || (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
3458 && (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
3459 || s->next->hl != s->hl)));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3460
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3461 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
3462
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3463 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
3464 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
3465 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
3466 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3467 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3468 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
3469 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
3470 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
3471 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3472 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3473
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3474
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3475 /* 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
3476
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3477 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3478 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
3479 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
3480 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3481 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
3482 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
3483
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3484 /* 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
3485 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
3486 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
3487 && 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
3488 && 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
3489 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
3490
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3491 /* 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
3492 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
3493 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
3494 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
3495 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
3496 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
3497
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3498 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
3499 {
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
3500 x_set_glyph_string_clipping (s);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
3501
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3502 #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
3503 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
3504 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
3505 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
3506 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3507 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
3508 #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
3509 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
3510 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
3511 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
3512 #else
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3513 ;
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3514 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3515 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3516 {
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3517 #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
3518 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
3519 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
3520 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
3521 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3522
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3523 /* 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
3524 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
3525 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
3526 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
3527 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
3528 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
3529 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
3530 {
0b6da8b7d7ac (x_draw_image_foreground, x_draw_image_foreground_1):
Kim F. Storm <storm@cua.dk>
parents: 45111
diff changeset
3531 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
3532 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
3533 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
3534 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
3535 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
3536 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3537 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3538 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3539 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3540 /* 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
3541 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
3542 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
3543 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3544
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3545
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3546 /* 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
3547
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3548 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3549 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
3550 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
3551 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3552 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
3553 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
3554 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
3555 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
3556
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3557 /* 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
3558 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
3559 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
3560 && 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
3561 && 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
3562 x += abs (s->face->box_line_width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3563
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3564 /* 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
3565 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
3566 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
3567 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
3568 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
3569 y += s->img->vmargin;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3570
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3571 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
3572 || 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
3573 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3574 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
3575 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
3576 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3577 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3578 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3579 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
3580 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
3581 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3582
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3583 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
3584 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
3585 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
3586 y1 = y + s->slice.height + thick - 1;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3587
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3588 x_setup_relief_colors (s);
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3589 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
3590 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
3591 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
3592 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
3593 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
3594 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
3595 &r);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3596 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3597
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3598
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3599 /* 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
3600 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
3601
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3602 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3603 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
3604 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
3605 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
3606 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3607 #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
3608 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
3609 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3610 /* 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
3611 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
3612 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
3613 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
3614 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3615 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3616 #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
3617 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
3618 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3619
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3620
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3621 /* 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
3622
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3623 s->y
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3624 s->x +-------------------------
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3625 | 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
3626 |
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3627 | +-------------------------
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3628 | | 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
3629 | |
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3630 | | +-------------------
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3631 | | | the image
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3635 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3636 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
3637 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
3638 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3639 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
3640 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
3641 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
3642 int height;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3643
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3644 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
3645
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3646
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3647 /* 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
3648 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
3649 flickering. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3650 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
3651 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
3652 || 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
3653 || 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
3654 || 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
3655 || 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
3656 || 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
3657 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3658 x = s->x;
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3659 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
3660 && 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
3661 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
3662
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3663 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
3664 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
3665 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
3666
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3667 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
3668
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3669 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
3670 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3671
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3672 /* Draw the foreground. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3673 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
3674
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3675 /* 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
3676 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
3677 || s->hl == DRAW_IMAGE_RAISED
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3678 || 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
3679 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
3680 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3681
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3682
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3683 /* 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
3684
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3685 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3686 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
3687 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
3688 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3689 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
3690 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
3691
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3692 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
3693 && !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
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 `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
3696 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
3697 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
3698 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
3699
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3700 if (x < left_x)
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3701 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3702 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
3703 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 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
3706
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3707 /* Draw cursor. */
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3708 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
3709
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3710 /* 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
3711 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
3712 {
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3713 int y = s->y;
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3714 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
3715 Rect r;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3716 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
3717
71021
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3718 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
3719 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
3720 && 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
3721 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3722 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
3723 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
3724 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3725 else
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->face->gc;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3727
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3728 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
3729 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
3730
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3731 #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
3732 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
3733 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3734 /* 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
3735 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
3736 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
3737 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
3738 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3739 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3740 #endif /* MAC_TODO */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3741 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
3742 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3743 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3744 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
3745 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3746 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
3747 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
3748
72470
3b82c004bf25 (x_draw_stretch_glyph_string): It is ok to draw a
Kim F. Storm <storm@cua.dk>
parents: 71965
diff changeset
3749 /* 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
3750 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
3751 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
3752 {
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3753 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
3754 x = left_x;
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 if (background_width > 0)
a86a3503e350 (x_draw_stretch_glyph_string): Fix problems with invisible
Kim F. Storm <storm@cua.dk>
parents: 70874
diff changeset
3757 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
3758 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3759
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3760 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
3761 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3762
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3763
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3764 /* 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
3765
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3766 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3767 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
3768 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
3769 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3770 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
3771
59718
d4cb255b034d * dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents: 59655
diff changeset
3772 /* 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
3773 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
3774 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
3775 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
3776 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
3777 && 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
3778 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3779 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
3780 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
3781 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
3782 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
3783 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3784
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3785 /* 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
3786 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
3787
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3788 /* 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
3789 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
3790 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
3791 && 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
3792 && (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
3793 || 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
3794
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3795 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3796 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
3797 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
3798 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
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 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
3801 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3802 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3803 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
3804
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3805 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
3806 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3807 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
3808 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
3809 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3810
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3811 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
3812 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
3813 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3814
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3815 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
3816 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
3817 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
3818 else
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3819 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
3820 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
3821 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3822
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3823 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
3824 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
3825 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
3826 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3827 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
3828 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
3829 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3830
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3831 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3832 abort ();
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
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
3835 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
3836 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3837 /* Draw underline. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3838 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
3839 {
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3840 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
3841 int y;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3842
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3843 #if 0
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3844 /* 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
3845 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
3846 #endif
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3847 h = 1;
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3848
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3849 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
3850 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
3851 {
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3852 /* 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
3853 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
3854 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
3855 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
3856
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3857 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
3858 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
3859
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3860 #if 0
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3861 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
3862 && 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
3863 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
3864 else
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3865 #endif
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
3866 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
3867 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
3868 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3869
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3870 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
3871 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
3872 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
3873 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3874 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3875 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3876 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
3877 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
3878 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
3879 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
3880 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
3881 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3882 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3883
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3884 /* Draw overline. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3885 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
3886 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3887 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
3888
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3889 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
3890 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
3891 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
3892 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3893 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3894 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3895 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
3896 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
3897 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
3898 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
3899 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
3900 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3901 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3902
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3903 /* 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
3904 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
3905 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3906 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
3907 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
3908
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3909 if (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
3910 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
3911 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
3912 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3913 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3914 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3915 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
3916 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
3917 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
3918 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
3919 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
3920 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3921 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3922
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3923 /* 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
3924 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
3925 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
3926 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3927
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3928 /* Reset clipping. */
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3929 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
3930 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3931
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3932 /* 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
3933
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3934 void
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3935 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
3936 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3937 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
3938 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3939 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
3940 x, y, width, height,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3941 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
3942 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3943
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3944 /* 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
3945 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
3946
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3947 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3948 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
3949 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
3950 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3951 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3952 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3955 /* 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
3956 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
3957
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3958 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3959 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
3960 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3961 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
3962
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3963 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
3964 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
3965 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3966 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
3967
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3968 /* 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
3969 longer visible. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3970 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
3971 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
3972 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
3973
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3974 /* 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
3975 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
3976 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3977 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
3978
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3979 /* 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
3980 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
3981 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
3982
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3983 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
3984 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3985 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3986
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3987
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3988
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3989 /* 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
3990
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3991 /* 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
3992 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
3993
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3994 #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
3995
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3996
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3997 /* 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
3998 *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
3999
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4000 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4001 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
4002 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
4003 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4004 /* 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
4005 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
4006 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
4007 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4008 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
4009 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
4010 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
4011 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4012
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4013 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
4014 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4015 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
4016 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
4017 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
4018 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4019
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4020 /* 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
4021 positive. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4022 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
4023 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
4024
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4025 /* 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
4026 negative. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4027 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
4028 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4029
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4030 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4031 XTflash (f)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4032 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
4033 {
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4034 /* 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
4035 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
4036 /* 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
4037 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
4038 /* 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
4039 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
4040 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
4041
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4042 int width;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4043
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4044 /* 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
4045 edge it is next to. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4046 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
4047 {
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4048 case vertical_scroll_bar_left:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4049 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
4050 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4051
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4052 case vertical_scroll_bar_right:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4053 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
4054 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4055
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4056 default:
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
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4060 width = flash_right - flash_left;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4061
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4062 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4063
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4064 /* 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
4065 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
4066 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4067 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
4068 (FRAME_INTERNAL_BORDER_WIDTH (f)
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4069 + 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
4070 width, flash_height);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4071 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
4072 (height - flash_height
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4073 - FRAME_INTERNAL_BORDER_WIDTH (f)),
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4074 width, flash_height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4075 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4076 else
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4077 /* 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
4078 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
4079 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
4080
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4081 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
4082
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4083 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4084 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
4085
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4086 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
4087
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4088 /* 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
4089 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
4090 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
4091 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
4092
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4093 /* 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
4094 available. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4095 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
4096 {
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4097 struct timeval current;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4098 struct timeval timeout;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4099
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4100 EMACS_GET_TIME (current);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4101
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4102 /* 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
4103 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
4104 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4105
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4106 /* How long `select' should wait. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4107 timeout.tv_sec = 0;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4108 timeout.tv_usec = 10000;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4109
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4110 /* 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
4111 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
4112 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4113 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4114
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4115 /* 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
4116 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
4117 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4118 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
4119 (FRAME_INTERNAL_BORDER_WIDTH (f)
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4120 + 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
4121 width, flash_height);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4122 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
4123 (height - flash_height
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4124 - FRAME_INTERNAL_BORDER_WIDTH (f)),
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4125 width, flash_height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4126 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4127 else
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4128 /* 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
4129 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
4130 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
4131
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
4132 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
4133
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4134 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4135 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4136
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4137 #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
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 /* 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
4141
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4142 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4143 XTring_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 struct frame *f = SELECTED_FRAME ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4146
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4147 #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
4148 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
4149 XTflash (f);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4150 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4151 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4152 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4153 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4154 SysBeep (1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4155 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
4156 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4157 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4158 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4159
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 /* 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
4162 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
4163 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
4164 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
4165
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
4166 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
4167 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
4168 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
4169 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4170 /* 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
4171 }
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
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 Line Dance
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 /* 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
4180 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
4181
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4182 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4183 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
4184 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
4185 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4186 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4187 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4190 /* 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
4191
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4192 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4193 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
4194 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
4195 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
4196 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4197 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
4198 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
4199
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4200 /* 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
4201 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
4202 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
4203 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
4204
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4205 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
4206 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
4207 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
4208
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4209 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
4210 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4211 /* 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
4212 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
4213 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
4214 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
4215 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4216 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
4217 }
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 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4220 /* 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
4221 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
4222 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
4223 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
4224 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4225 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
4226 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4227
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4228 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4229
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4230 /* 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
4231 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
4232 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
4233
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4234 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
4235 x, from_y,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4236 width, height,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
4237 x, to_y);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4238
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4239 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4240 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4241
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4242
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 Exposure Events
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4246 ***********************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4247
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4248
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4249 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4250 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
4251 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
4252 {
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4253 OSErr err;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4254 ControlRef root_control;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4255
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4256 BLOCK_INPUT;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4257 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
4258 if (err == noErr)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4259 ActivateControl (root_control);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4260 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
4261 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
4262 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4263
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4264 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4265 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
4266 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
4267 {
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4268 OSErr err;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4269 ControlRef root_control;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4270
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4271 BLOCK_INPUT;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4272 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
4273 if (err == noErr)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4274 DeactivateControl (root_control);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4275 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
4276 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
4277 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4278
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4279 /* 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
4280 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
4281 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
4282 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
4283 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
4284
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4285 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4286 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
4287 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
4288 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
4289 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4290 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
4291
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4292 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
4293 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4294 /* 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
4295 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
4296 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
4297
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4298 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
4299 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
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 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4302 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
4303 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
4304 selected_frame);
51048
7ac9c3bea5ea (Fselect_window): Add optional arg `norecord'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 50701
diff changeset
4305 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
4306 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
4307 #endif /* ! 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4308
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4309 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
4310 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
4311 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4312 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
4313
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
4314 #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
4315 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
4316 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
4317 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4318 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4319
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4320 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
4321 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4322
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4323 /* 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
4324 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
4325 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
4326
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4327 static void
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4328 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
4329 int type;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4330 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
4331 struct frame *frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4332 struct input_event *bufp;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4333 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4334 if (type == activeFlag)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4335 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4336 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
4337 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4338 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
4339 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 /* 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
4342 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
4343 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
4344 && GC_CONSP (Vframe_list)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4345 && !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
4346 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4347 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
4348 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
4349 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4350 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4351 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4352 else
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 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
4355 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4356 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
4357 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
4358 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4359 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4360 }
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 /* 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
4363 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
4364
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4365 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
4366
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4367 static void
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4368 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
4369 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
4370 const EventRecord *event;
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4371 struct input_event *bufp;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4372 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4373 struct frame *frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4374
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4375 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
4376 if (! frame)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4377 return;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4378
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4379 /* 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
4380 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
4381 dpyinfo, frame, bufp);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4382 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4383
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4384
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4385 /* 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
4386
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4387 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4388 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
4389 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
4390 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4391 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
4392 }
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 /* 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
4395 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
4396 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
4397
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4398 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
4399 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
4400 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
4401
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4402 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4403 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
4404 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
4405 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4406 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
4407 }
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4410 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
4411 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
4412 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4413 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
4414
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4415 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
4416 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4417 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
4418 = ((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
4419 ? 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
4420 : 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
4421 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
4422 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4423 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
4424 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
4425 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4426 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4427 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4428 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
4429
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4430 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
4431 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4432 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
4433 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
4434 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
4435 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
4436 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4437 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4438
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 /* 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
4442
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4443 char *
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4444 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
4445 int keysym;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4446 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4447 char *value;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4448
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4449 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4450 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4451 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
4452 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4453 value = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4454 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4455 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4456
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4457 return value;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4458 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4459
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4460
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4461
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4462 /* 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
4463 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
4464
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4465 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
4466 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
4467 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
4468 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
4469
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4470 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
4471 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
4472
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
4473 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
4474 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
4475 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
4476 Point *pos;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4477 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4478 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
4479 #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
4480 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4481 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4482
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4483 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
4484 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
4485 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
4486
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4487 #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
4488 if (!PtInRect (*pos, GetWindowPortBounds (FRAME_MAC_WINDOW (frame), &r)))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4489 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4490 if (!PtInRect (*pos, &FRAME_MAC_WINDOW (frame)->portRect))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4491 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4492 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4493 if (frame == dpyinfo->mouse_face_mouse_frame)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4494 /* This case corresponds to LeaveNotify in X11. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4495 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4496 /* If we move outside the frame, then we're certainly no
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4497 longer on any text in the frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4498 clear_mouse_face (dpyinfo);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4499 dpyinfo->mouse_face_mouse_frame = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4500 if (!dpyinfo->grabbed)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4501 rif->define_frame_cursor (frame,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4502 frame->output_data.mac->nontext_cursor);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4503 }
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
4504 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
4505 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4506 /* 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
4507 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
4508 || !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
4509 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4510 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
4511 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
4512 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
4513 /* 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
4514 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
4515 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
4516 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
4517 }
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
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 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
4520 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4521
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 Mouse Face
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
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4527 /* 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
4528
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4529 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4530 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
4531 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4532 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
4533 && 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
4534 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
4535 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
4536 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
4537 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4538
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4539
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4540 static struct frame *
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4541 mac_focus_frame (dpyinfo)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4542 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
4543 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4544 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
4545 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
4546 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4547 /* 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
4548 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
4549 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
4550 return SELECTED_FRAME ();
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4551 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4552
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4553
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4554 /* 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
4555 *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
4556
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4557 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
4558 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
4559 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
4560 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
4561
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4562 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
4563 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
4564 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
4565
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4566 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
4567 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
4568
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4569 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
4570
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4571 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
4572 movement. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4573
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4574 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4575 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
4576 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
4577 int insist;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4578 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
4579 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
4580 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
4581 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
4582 {
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4583 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
4584
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4585 BLOCK_INPUT;
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 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
4588 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
4589 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4590 {
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4591 Lisp_Object frame, tail;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4592
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4593 /* 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
4594 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
4595 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
4596
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4597 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
4598
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4599 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
4600 && 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
4601 f1 = last_mouse_frame;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4602 else
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4603 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
4604
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4605 if (f1)
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 /* 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
4608 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
4609 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
4610 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
4611 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
4612 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
4613 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
4614 Point mouse_pos;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4615
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4616 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
4617 GetMouse (&mouse_pos);
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4618 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
4619 &last_mouse_glyph);
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
4620 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
4621
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4622 *bar_window = Qnil;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4623 *part = 0;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4624 *fp = f1;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4625 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
4626 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
4627 *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
4628 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4629 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
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 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4632 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4633
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4634
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4635 /************************************************************************
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4636 Toolkit scroll bars
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
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4639 #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
4640
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4641 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
4642 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
4643 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
4644 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
4645 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
4646 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
4647 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
4648 Rect *));
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4649 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
4650 ControlPartCode, Point,
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4651 struct input_event *));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4652 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
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_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
4655 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
4656 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
4657 int, int, int));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4658
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4659 /* 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
4660
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4661 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
4662
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4663 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
4664
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4665 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
4666
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4667 #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
4668 #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
4669
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4670 static pascal void
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4671 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
4672 EventLoopTimerRef timer;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4673 void *data;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4674 {
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4675 OSStatus err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4676
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
4677 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
4678 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4679 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
4680 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4681
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4682 static OSStatus
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4683 install_scroll_bar_timer ()
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4684 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4685 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
4686
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4687 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
4688 scroll_bar_timer_callbackUPP =
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4689 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
4690
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4691 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
4692 /* 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
4693 kEventDurationForever as delays. */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4694 return
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4695 InstallEventLoopTimer (GetCurrentEventLoop (),
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4696 kEventDurationForever, kEventDurationForever,
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4697 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
4698 &scroll_bar_timer);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4699 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4700
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4701 static OSStatus
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4702 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
4703 EventTimerInterval delay;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4704 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4705 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
4706 install_scroll_bar_timer ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4707
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4708 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
4709
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4710 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
4711 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4712
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4713 static int
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4714 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
4715 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4716 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4717 switch (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 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
4720 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
4721 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
4722 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
4723 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
4724 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4725
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4726 return -1;
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
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4729 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
4730 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
4731 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4732 int part;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4733 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4734 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4735 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
4736 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
4737 bufp->arg = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4738 bufp->part = part;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4739 bufp->code = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4740 XSETINT (bufp->x, 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4741 XSETINT (bufp->y, 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4742 bufp->modifiers = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4743 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4744
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4745 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
4746 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
4747 ControlHandle ch;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4748 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4749 Rect *rect;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4750 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4751 RgnHandle region = NewRgn ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4752 OSStatus err;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4753
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4754 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
4755 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4756 GetRegionBounds (region, rect);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4757 DisposeRgn (region);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4758
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4759 return err;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4760 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4761
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4762 static void
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4763 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
4764 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4765 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
4766 Point mouse_pos;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4767 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4768 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4769 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
4770
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4771 if (part < 0)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4772 return;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4773
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4774 if (part != scroll_bar_handle)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4775 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4776 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
4777 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
4778 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
4779 bar->dragging = Qnil;
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4780 }
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4781 else
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 Rect r;
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 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
4786 kControlIndicatorPart, &r);
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4787 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
4788 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4789
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4790 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
4791 tracked_scroll_bar = bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4792 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4793
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4794 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
4795 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
4796 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4797 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4798 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4799 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
4800 || (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
4801 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
4802
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4803 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
4804 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
4805
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4806 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
4807 bar->dragging = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4808 tracked_scroll_bar = NULL;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4809 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4810
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4811 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
4812 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
4813 WindowPtr win;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4814 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4815 Point mouse_pos;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4816 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4817 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4818 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
4819
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4820 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
4821 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4822 int top, top_range;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4823 Rect r;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4824
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
4825 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
4826 kControlIndicatorPart, &r);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4827
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
4828 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
4829 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
4830
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4831 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
4832 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
4833
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4834 if (top < 0)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4835 top = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4836 if (top > top_range)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4837 top = top_range;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4838
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4839 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
4840 XSETINT (bufp->x, top);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4841 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
4842 }
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4843 else
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4844 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4845 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4846 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
4847
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4848 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
4849 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4850 else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4851 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4852 part = control_part_code_to_scroll_bar_part (part_code);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4853
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4854 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
4855 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4856 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
4857 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
4858 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
4859 && 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
4860 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4861 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4862
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4863 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
4864 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
4865 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
4866 && 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
4867 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4868 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4869 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4870 }
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 if (unhilite_p)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4873 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
4874 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
4875 || 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
4876 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4877 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
4878 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
4879 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
4880 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
4881 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4882 }
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 /* 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
4886 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
4887
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4888 static void
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4889 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
4890 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4891 int portion, position, whole;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4892 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4893 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
4894 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
4895
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4896 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
4897 return;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4898
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4899 if (whole <= portion)
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4900 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
4901 else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4902 {
76114
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4903 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
4904
d14fbfc5dd8e [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76091
diff changeset
4905 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
4906 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
4907 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
4908 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
4909 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4910
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4911 BLOCK_INPUT;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4912
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4913 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
4914 || 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
4915 || 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
4916 {
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4917 /* 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
4918 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
4919
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 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
4921 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
4922 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
4923
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 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
4925 }
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
4926
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4927 UNBLOCK_INPUT;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4928 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4929
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4930 #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
4931
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4932
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4933
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4934 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4935 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
4936 ************************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4937
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4938 /* 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
4939 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
4940 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
4941 scroll bar. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4942
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4943 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
4944 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
4945 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
4946 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
4947 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4948 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
4949 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
4950 = 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
4951 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4952 ControlHandle ch;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4953
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4954 BLOCK_INPUT;
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 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
4957 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
4958 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
4959 r.bottom = disp_top + disp_height;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4960
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
4961 #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
4962 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
4963 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
4964 #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
4965 ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p",
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4966 #if USE_TOOLKIT_SCROLL_BARS
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4967 false,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4968 #else
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4969 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
4970 #endif
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4971 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
4972 #else
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4973 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
4974 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
4975 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4976 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
4977
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4978 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
4979 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
4980 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
4981 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
4982 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
4983 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
4984 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
4985 bar->dragging = Qnil;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4986 #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
4987 bar->track_top = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4988 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
4989 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
4990 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4991
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4992 /* 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
4993 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
4994 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
4995 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
4996 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
4997 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
4998
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4999 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5000 return bar;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5001 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5002
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 /* Draw BAR's handle in the proper position.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5005
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5006 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
5007 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
5008 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
5009 events.)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5010
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5011 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
5012 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
5013 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
5014 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
5015 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
5016
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5017 #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
5018
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5019 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5020 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
5021 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
5022 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
5023 int rebuild;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5024 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5025 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
5026 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
5027 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
5028 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
5029 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
5030
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5031 /* 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
5032 if (! rebuild
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5033 && 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
5034 && 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
5035 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5036
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5037 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5038
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5039 /* 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
5040 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
5041 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
5042 start = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5043 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
5044 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
5045 end = start + length;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5046
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5047 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
5048 end = start;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5049 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
5050 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
5051
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5052 /* 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
5053 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
5054 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
5055
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5056 /* 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
5057 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
5058 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
5059
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5060 /* 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
5061 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
5062 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
5063 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
5064
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5065 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
5066 /* 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
5067 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
5068 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
5069 - (end - start));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5070 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
5071 #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
5072 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
5073 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5074
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5075 UNBLOCK_INPUT;
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
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5078 #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
5079
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5080 /* 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
5081 nil. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5082
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5083 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5084 x_scroll_bar_remove (bar)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5085 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
5086 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5087 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
5088
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5089 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5090
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5091 #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
5092 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
5093 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5094 /* 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
5095 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
5096
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5097 /* 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
5098 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
5099
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5100 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5101 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5102
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5103
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5104 /* 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
5105 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
5106 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
5107 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
5108
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5109 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5110 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
5111 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
5112 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
5113 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5114 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
5115 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
5116 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
5117 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
5118
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5119 /* Get window dimensions. */
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5120 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
5121 top = window_y;
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5122 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
5123 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
5124
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5125 /* 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
5126 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
5127
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5128 /* 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
5129 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
5130 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
5131 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
5132 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5133 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
5134
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5135 /* 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
5136 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
5137 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
5138 else
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 + width - sb_width;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5140
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5141 /* 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
5142 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
5143 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
5144 #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
5145 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
5146 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5147 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
5148 disp_height++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5149 }
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5150 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
5151 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5152 disp_top++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5153 disp_height--;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5154 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5155
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5156 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
5157 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
5158 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5159
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5160 /* 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
5161 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
5162 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5163 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5164 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
5165 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5166 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
5167 disp_height);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5168 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
5169 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5170 else
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 /* 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
5173 ControlHandle ch;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5174
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5175 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
5176 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
5177
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5178 BLOCK_INPUT;
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 /* 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
5181 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
5182 && 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
5183 && 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
5184 && 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
5185 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
5186 /* 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
5187 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
5188 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
5189
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5190 #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
5191 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
5192 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5193 HideControl (ch);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5194 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
5195 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
5196 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
5197 #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
5198 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
5199 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
5200 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5201
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5202 /* 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
5203 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
5204 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
5205 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
5206 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
5207 #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
5208 bar->track_top = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5209 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
5210 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
5211 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5212 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5213
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5214 UNBLOCK_INPUT;
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
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5217 #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
5218 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
5219 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5220 if (sb_width >= disp_height)
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5221 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5222 XSETINT (bar->track_top, 0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5223 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
5224 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
5225 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5226 else
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 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
5229 Rect r0, r1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5230
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5231 BLOCK_INPUT;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5232
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5233 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
5234 SetControl32BitMaximum (ch, 1 << 30);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5235 SetControlViewSize (ch, 1);
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 /* 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
5238 SetControl32BitValue (ch, 0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5239 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
5240
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5241 /* 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
5242 SetControl32BitValue (ch, 1 << 30);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5243 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
5244
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5245 UnionRect (&r0, &r1, &r0);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5246 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
5247 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
5248 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
5249
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5250 /* 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
5251 display the scroll bar thumb. */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5252 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
5253 ShowControl (ch);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5254
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5255 UNBLOCK_INPUT;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5256 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
5257 }
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5258
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5259 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
5260 #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
5261 /* 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
5262 dragged. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5263 if (NILP (bar->dragging))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5264 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5265 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
5266
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5267 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
5268 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
5269 else
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 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
5272 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
5273 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
5274 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5275 }
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5276 #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
5277 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5278
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5279
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5280 /* 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
5281 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
5282 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
5283 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
5284 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
5285 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
5286 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
5287
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5288 /* 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
5289 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
5290 `*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
5291
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5292 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5293 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
5294 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
5295 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5296 /* 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
5297 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
5298 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5299 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
5300 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
5301 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
5302 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
5303 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
5304 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
5305 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
5306 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
5307 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5308 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5309
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5310
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5311 /* 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
5312 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
5313
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5314 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5315 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
5316 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
5317 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5318 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
5319 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
5320
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5321 /* 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
5322 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
5323 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5324
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5325 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
5326
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5327 /* 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
5328 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
5329 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
5330 {
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5331 /* 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
5332 the lists. */
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5333 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
5334 /* 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
5335 return;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5336 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
5337 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
5338 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
5339 else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5340 /* 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
5341 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
5342 abort ();
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5343 }
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5344 else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5345 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
5346
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5347 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
5348 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
5349
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5350 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
5351 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
5352 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
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 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
5355 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5356
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5357 /* 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
5358 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
5359
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5360 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5361 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
5362 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
5363 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5364 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
5365
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5366 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
5367
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5368 /* 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
5369 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
5370 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
5371
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5372 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
5373 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5374 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
5375
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5376 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
5377
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5378 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
5379 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
5380 }
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 /* 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
5383 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
5384 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5385
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5386
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5387 /* 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
5388 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
5389
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5390 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
5391 mark bits. */
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5394 x_scroll_bar_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
5395 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
5396 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
5397 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
5398 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
5399 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5400 int win_y, top_range;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5401
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5402 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
5403 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5404
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 45197
diff changeset
5405 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
5406 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
5407 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
5408
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5409 bar->dragging = Qnil;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5410
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5411 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
5412 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5413 case kControlUpButtonPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5414 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
5415 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5416 case kControlDownButtonPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5417 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
5418 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5419 case kControlPageUpPart:
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_above_handle;
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 kControlPageDownPart:
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_below_handle;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5424 break;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5425 #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
5426 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5427 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5428 case kControlIndicatorPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5429 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5430 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
5431 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
5432 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
5433 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
5434 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5435 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5436
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5437 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
5438 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
5439
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5440 win_y -= VERTICAL_SCROLL_BAR_TOP_BORDER;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5441
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5442 win_y -= 24;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5443
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5444 if (! NILP (bar->dragging))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5445 win_y -= XINT (bar->dragging);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5446
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5447 if (win_y < 0)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5448 win_y = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5449 if (win_y > top_range)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5450 win_y = top_range;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5451
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5452 XSETINT (bufp->x, win_y);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5453 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
5454 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5455
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5456 #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
5457
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5458 /* 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
5459
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5460 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
5461 mark bits. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5462
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5463 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5464 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
5465 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
5466 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
5467 Time t;
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 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
5470
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5471 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
5472
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5473 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
5474 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
5475
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5476 /* 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
5477 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
5478 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5479 /* 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
5480 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
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 (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
5483 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5484 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
5485
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5486 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
5487 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5488 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5489 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5490
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5491 #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
5492
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5493 /* 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
5494 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
5495
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5496 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5497 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
5498 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
5499 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
5500 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
5501 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
5502 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
5503 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5504 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
5505 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
5506 #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
5507 WindowPtr wp = GetControlOwner (ch);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5508 #else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5509 WindowPtr wp = (*ch)->contrlOwner;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5510 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5511 Point mouse_pos;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5512 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
5513 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
5514
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5515 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
5516
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5517 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
5518
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5519 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
5520 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
5521
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5522 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
5523
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5524 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
5525
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5526 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
5527 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
5528
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5529 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
5530 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
5531 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
5532 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
5533
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5534 *fp = f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5535 *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
5536
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5537 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
5538 *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
5539 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
5540 *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
5541 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
5542 *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
5543 else
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_below_handle;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5545
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5546 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
5547 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
5548
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5549 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
5550 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
5551
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5552 *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
5553 }
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5554
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5555
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5556 /* 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
5557 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
5558 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
5559 redraw them. */
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 void
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5562 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
5563 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
5564 {
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5565 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
5566 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
5567 }
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5568
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5569
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5570 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5571 Text Cursor
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5572 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5573
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5574 /* 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
5575 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
5576
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5577 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
5578 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
5579 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
5580
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5581 static void
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5582 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
5583 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
5584 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
5585 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
5586 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5587 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5588 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
5589 Rect clip_rect;
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5590 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
5591
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5592 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
5593
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5594 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
5595 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
5596 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
5597 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
5598 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
5599
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
5600 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
5601 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5602
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5603
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5604 /* 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
5605
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5606 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5607 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
5608 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
5609 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
5610 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5611 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
5612 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
5613 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
5614 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
5615 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5616 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
5617 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5618
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5619 /* 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
5620 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
5621 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
5622 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
5623 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5624
59748
1df465faf1df (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
Kim F. Storm <storm@cua.dk>
parents: 59718
diff changeset
5625 /* 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
5626 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
5627 wd = w->phys_cursor_width;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5628
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5629 /* 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
5630 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
5631 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
5632 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
5633 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
5634 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5635 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
5636 GCForeground, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5637 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
5638
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5639 /* 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
5640 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
5641 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
5642 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
5643 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5646 /* 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
5647
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5648 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
5649 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
5650 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
5651 --gerd. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5652
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5653 static void
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5654 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
5655 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
5656 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
5657 int width;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5658 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
5659 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5660 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
5661 struct glyph *cursor_glyph;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5662
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5663 /* 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
5664 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
5665 and mini-buffer. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5666 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
5667 if (cursor_glyph == NULL)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5668 return;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5669
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5670 /* 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
5671 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
5672 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
5673 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
5674 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5675 struct glyph_row *row;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5676 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
5677 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
5678 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5679 else
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 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
5682 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
5683 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
5684 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
5685 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
5686 XGCValues xgcv;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5687
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5688 /* 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
5689 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
5690 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
5691 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
5692 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
5693 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
5694 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
5695 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5696 xgcv.background = xgcv.foreground = f->output_data.mac->cursor_pixel;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5697
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5698 if (gc)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5699 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
5700 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5701 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5702 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
5703 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
5704 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5705
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5706 if (width < 0)
47138
4a0541418bc5 (x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents: 47030
diff changeset
5707 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
5708 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
5709
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5710 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
5711 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
5712
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5713 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
5714 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
5715 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
5716 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
5717 width, row->height);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5718 else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5719 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
5720 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
5721 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
5722 row->height - width),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5723 cursor_glyph->pixel_width,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5724 width);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5725
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
5726 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
5727 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5728 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5729
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5730
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5731 /* 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
5732
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5733 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5734 mac_define_frame_cursor (f, cursor)
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5735 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5736 Cursor cursor;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5737 {
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
5738 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
5739
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
5740 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
5741 SetThemeCursor (cursor);
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5742 }
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5743
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5744
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5745 /* 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
5746
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5747 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5748 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
5749 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5750 int x, y, width, height;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5751 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5752 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
5753 }
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5754
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5755
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5756 /* RIF: Draw cursor on window W. */
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5757
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5758 static void
50243
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5759 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
5760 struct window *w;
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5761 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
5762 int x, y;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5763 int cursor_type, cursor_width;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5764 int on_p, active_p;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5765 {
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5766 if (on_p)
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5767 {
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5768 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
5769 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
5770
53606
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
5771 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
5772 && 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
5773 {
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
5774 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
5775 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
5776 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5777 else
50243
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5778 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
5779 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5780 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
5781 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
5782 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5783
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5784 case FILLED_BOX_CURSOR:
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5785 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
5786 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5787
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5788 case BAR_CURSOR:
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5789 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
5790 break;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5791
47138
4a0541418bc5 (x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents: 47030
diff changeset
5792 case HBAR_CURSOR:
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5793 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
5794 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5795
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5796 case NO_CURSOR:
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5797 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
5798 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5799
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5800 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5801 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5802 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5803 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5804 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5805
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5806
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5807 /* Icons. */
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 #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
5810 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5811 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
5812 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
5813 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
5814 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5815 HANDLE hicon;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5816
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5817 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
5818 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5819
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5820 if (NILP (icon))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5821 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
5822 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
5823 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
5824 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
5825 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
5826 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5827 LPCTSTR name;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5828
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5829 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
5830 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
5831 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
5832 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
5833 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
5834 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
5835 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
5836 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
5837 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
5838 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
5839 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
5840 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
5841 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5842 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5843
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5844 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
5845 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5846 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5847 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5848
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5849 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
5850 return 1;
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 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
5853 (LPARAM) hicon);
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 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5856 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5857 #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
5858
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5859 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5860 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
5861 ************************************************************************/
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 /* 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
5864 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
5865
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5866 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
5867 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
5868 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
5869 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
5870 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
5871 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
5872 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
5873 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
5874 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
5875 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
5876 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
5877 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
5878 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
5879
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5880 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5881
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5882
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5883 /* 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
5884
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5885 /* 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
5886 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
5887 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
5888 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
5889
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5890 Lisp_Object
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5891 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
5892 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
5893 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
5894 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5895 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
5896 = FS_LOAD_FONT (f, 0, fontname, -1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5897
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5898 if (!fontp)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5899 return Qnil;
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 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
5902 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
5903 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
5904
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
5905 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
5906 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
5907 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
5908
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5909 compute_fringe_widths (f, 1);
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5910
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5911 /* 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
5912 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
5913 {
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5914 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
5915 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
5916 = (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
5917 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5918 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5919 {
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5920 int wid = FRAME_COLUMN_WIDTH (f);
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5921 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
5922 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5923
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5924 /* 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
5925 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
5926 {
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
5927 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
5928 FRAME_FONT (f));
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
5929 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
5930 FRAME_FONT (f));
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
5931 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
5932 FRAME_FONT (f));
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5933
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5934 /* 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
5935 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
5936 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
5937 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
5938 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
5939 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5940
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5941 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
5942 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5943
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5944 /* Give frame F the fontset named FONTSETNAME as its default font, and
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5945 return the full name of that fontset. FONTSETNAME may be a wildcard
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5946 pattern; in that case, we choose some fontset that fits the pattern.
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5947 The return value shows which fontset we chose. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5948
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5949 Lisp_Object
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5950 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
5951 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
5952 char *fontsetname;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5953 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5954 int fontset = fs_query_fontset (build_string (fontsetname), 0);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5955 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
5956
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5957 if (fontset < 0)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5958 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5959
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5960 if (FRAME_FONTSET (f) == fontset)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5961 /* 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
5962 to do. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5963 return fontset_name (fontset);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5964
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46169
diff changeset
5965 result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5966
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5967 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
5968 /* 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
5969 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5970
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5971 /* 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
5972 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
5973
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5974 return build_string (fontsetname);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5975 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5976
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5977
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5978 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5979 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
5980 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5981 /* 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
5982
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5983 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
5984 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
5985 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
5986 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
5987 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
5988 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
5989
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5990 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5991
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5992
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5993 void
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5994 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
5995 struct frame *f;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5996 Rect *inner, *outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5997 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5998 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5999 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
6000 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
6001 #else /* not TARGET_API_MAC_CARBON */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6002 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
6003
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6004 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
6005 *inner = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6006 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
6007 *outer = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6008 DisposeRgn (region);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6009 #endif /* not TARGET_API_MAC_CARBON */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6010 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6011
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6012 static void
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6013 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
6014 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
6015 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6016 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
6017 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6018
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6019 static void
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6020 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
6021 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
6022 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
6023 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6024 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
6025
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6026 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
6027 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
6028
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6029 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
6030 || 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
6031 || 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
6032 || 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
6033 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6034 /* 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
6035 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
6036 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
6037 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
6038 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
6039 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
6040
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6041 /* 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
6042 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
6043
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6044 /* 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
6045 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
6046 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
6047 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
6048 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
6049 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
6050
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6051 #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
6052 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
6053 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6054 #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
6055 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
6056 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6057 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
6058 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
6059 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6060 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6061 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6062 }
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6063
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
6064
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6065 /* 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
6066 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
6067
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6068 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6069 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
6070 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
6071 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6072 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
6073 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
6074 Rect inner, outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6075
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6076 /* 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
6077 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
6078 if (! ((flags & XNegative) || (flags & YNegative)))
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6079 return;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6080
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6081 /* 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
6082 the inner window, with respect to the outer window. */
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6083 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
6084
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6085 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
6086 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
6087
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6088 /* 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
6089 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
6090 if (flags & XNegative)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6091 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
6092 - width_diff
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6093 - FRAME_PIXEL_WIDTH (f)
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6094 + f->left_pos);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6095
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6096 if (flags & YNegative)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6097 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
6098 - height_diff
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6099 - FRAME_PIXEL_HEIGHT (f)
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6100 + f->top_pos);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6101
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6102 /* 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
6103 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
6104 so the flags should correspond. */
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6105 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
6106 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6107
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6108 /* CHANGE_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
6109 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
6110 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
6111 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
6112 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
6113
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6114 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6115 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
6116 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
6117 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
6118 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
6119 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6120 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
6121 {
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6122 f->top_pos = yoff;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6123 f->left_pos = xoff;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6124 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
6125 if (xoff < 0)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6126 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
6127 if (yoff < 0)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6128 f->size_hint_flags |= YNegative;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6129 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
6130 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6131 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
6132
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6133 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6134 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
6135
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6136 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6137 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
6138 /* 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
6139 position. */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6140 ConstrainWindowToScreen (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn,
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6141 kWindowConstrainMoveRegardlessOfFit
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6142 | 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
6143 #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
6144 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
6145 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6146 mac_handle_origin_change (f);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6147 #else
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6148 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6149 Rect inner, outer, screen_rect, dummy;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6150 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
6151
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6152 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
6153 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
6154 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
6155 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
6156 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
6157
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6158 /* 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
6159 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
6160 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
6161 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
6162 strict. */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6163 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
6164 outer = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6165 DisposeRgn (region);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6166 inner = outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6167 InsetRect (&inner, 8, 8);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6168 screen_rect = qd.screenBits.bounds;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6169 screen_rect.top += GetMBarHeight ();
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6170
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6171 if (!SectRect (&inner, &screen_rect, &dummy))
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6172 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6173 if (inner.right <= screen_rect.left)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6174 f->left_pos = screen_rect.left;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6175 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
6176 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
6177
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6178 if (inner.bottom <= screen_rect.top)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6179 f->top_pos = screen_rect.top;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6180 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
6181 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
6182
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6183 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
6184 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
6185 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6186 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6187 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6188
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6189 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6190 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6191
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6192 /* 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
6193 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
6194 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
6195 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
6196
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6197 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6198 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
6199 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
6200 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
6201 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
6202 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6203 int pixelwidth, pixelheight;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6204
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6205 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6206
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6207 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
6208 f->scroll_bar_actual_width
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6209 = 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
6210
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
6211 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
6212
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6213 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
6214 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
6215
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6216 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
6217 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
6218
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6219 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
6220
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6221 #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
6222 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
6223 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6224 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
6225
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6226 UNBLOCK_INPUT;
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6229 /* Mouse warping. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6230
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6231 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
6232
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6233 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6234 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
6235 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
6236 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
6237 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6238 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
6239
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6240 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
6241 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
6242
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6243 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
6244 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
6245
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6246 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
6247 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
6248
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6249 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
6250 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6251
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6252 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6253 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
6254 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
6255 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
6256 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6257 #ifdef MAC_OSX
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6258 Point p;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6259 CGPoint point;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6260
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6261 BLOCK_INPUT;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6262 SetPortWindowPort (FRAME_MAC_WINDOW (f));
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6263 p.h = pix_x;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6264 p.v = pix_y;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6265 LocalToGlobal (&p);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6266 point.x = p.h;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6267 point.y = p.v;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6268 CGWarpMouseCursorPosition (point);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6269 UNBLOCK_INPUT;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6270 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6271 #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
6272 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6273
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6274 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
6275 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
6276 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6277 #endif
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
6278 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6279 }
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 /* 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
6282
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6283 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6284 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
6285 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
6286 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6287 #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
6288 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
6289 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6290 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6291 /* 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
6292 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
6293 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
6294 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
6295 RevertToPointerRoot, CurrentTime);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6296 #endif /* ! 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6297 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6298
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6299 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6300 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
6301 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
6302 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6303 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6304
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6305 /* 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
6306
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6307 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6308 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
6309 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
6310 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6311 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
6312 {
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6313 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
6314 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
6315 UNBLOCK_INPUT;
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6316 }
44890
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6319 /* 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
6320
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6321 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6322 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
6323 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
6324 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6325 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
6326 {
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6327 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
6328 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
6329 UNBLOCK_INPUT;
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6330 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6331 }
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6334 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
6335 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
6336 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
6337 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6338 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
6339 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
6340 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6341 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
6342 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6343
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6344 /* 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
6345
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
6346 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
6347 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
6348 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
6349 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6350 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
6351 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
6352 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
6353
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6354 if (IsWindowVisible (wp))
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6355 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6356 if (IsWindowCollapsed (wp))
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6357 iconified = 1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6358 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6359 visible = 1;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6360 }
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
6361
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6362 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
6363 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6364 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
6365 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6366 /* 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
6367 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
6368 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
6369 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
6370 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
6371
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6372 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
6373 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
6374 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
6375 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
6376 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
6377 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6378 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
6379 /* 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
6380 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
6381 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
6382 }
ac7314b59792 (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 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
6384 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
6385 {
ac7314b59792 (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 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
6387 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
6388 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
6389 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
6390 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
6391 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6392
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6393 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
6394 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
6395 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6396
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6397 /* 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
6398 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
6399 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
6400 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
6401 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
6402 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
6403
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6404 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6405 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
6406 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
6407 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6408 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6409
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6410 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
6411 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6412 /* 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
6413 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
6414 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
6415 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
6416 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
6417 && ! 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
6418 {
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
6419 #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
6420 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
6421 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6422 struct frame *sf = SELECTED_FRAME ();
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6423 if (!FRAME_MAC_P (sf))
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6424 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
6425 kWindowCenterOnMainScreen);
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6426 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6427 RepositionWindow (FRAME_MAC_WINDOW (f),
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6428 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
6429 #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
6430 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
6431 #else
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6432 kWindowCascadeOnParentWindowScreen
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6433 #endif
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6434 );
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6435 #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
6436 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
6437 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
6438 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
6439 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6440 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6441 #endif
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6442 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
6443 }
44890
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 f->output_data.mac->asked_for_visible = 1;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6446
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
6447 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
6448 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
6449 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6450
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6451 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
6452
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6453 /* 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
6454 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
6455 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
6456 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6457 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
6458 int count;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6459
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6460 /* 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
6461 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6462
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6463 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
6464
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6465 /* 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
6466 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
6467 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
6468 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
6469 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
6470 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6471 /* 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
6472 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
6473
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6474 /* 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
6475 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
6476 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
6477 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
6478 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
6479 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
6480 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
6481 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6482 /* 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
6483 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
6484 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
6485 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
6486 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
6487 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
6488 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
6489 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
6490 }
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 /* 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
6493 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
6494 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6495 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6496 }
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 /* 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
6499
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6500 /* 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
6501
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6502 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6503 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
6504 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
6505 {
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
6506 /* 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
6507 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
6508 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
6509 #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
6510 /* 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
6511 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
6512 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
6513 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6514
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6515 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6516
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
6517 /* 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
6518 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
6519 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
6520 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
6521 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
6522 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
6523
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6524 HideWindow (FRAME_MAC_WINDOW (f));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6525
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6526 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
6527
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6528 #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
6529 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
6530 #endif
44890
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 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
6534
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6535 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6536 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
6537 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
6538 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
6539 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
6540
ac7314b59792 (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 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
6543 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
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. */
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
6546 if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
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
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
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 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
6551 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6552
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6553 BLOCK_INPUT;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
6554
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
6555 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
6556
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6557 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
6558 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
6559
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6560 err = CollapseWindow (FRAME_MAC_WINDOW (f), true);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6561
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6562 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
6563
ac7314b59792 (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 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
6565 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
6566
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
6567 #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
6568 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
6569 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6570 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6571
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6572
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6573 /* 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
6574
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6575 void
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6576 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
6577 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
6578 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6579 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
6580 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
6581
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6582 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6583
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
6584 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
6585 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
6586
75200
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
6587 #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
6588 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
6589 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6590 DisposeWindow (wp);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6591 if (wp == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6592 /* Neither WaitNextEvent nor ReceiveNextEvent receives `window
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6593 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
6594 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
6595
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6596 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
6597
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6598 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
6599 free_frame_faces (f);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6600
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6601 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
6602
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6603 if (FRAME_SIZE_HINTS (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6604 xfree (FRAME_SIZE_HINTS (f));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6605
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6606 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
6607 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
6608
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6609 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
6610 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
6611 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
6612 #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
6613 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
6614 #endif
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
6615 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6616 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
6617 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
6618 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
6619 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
6620
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6621 if (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
6622 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6623 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
6624 = 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
6625 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
6626 = 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
6627 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
6628 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
6629 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
6630 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6631
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6632 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6633 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6634
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 /* 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
6637
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6638 void
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6639 x_destroy_window (f)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6640 struct frame *f;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6641 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6642 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
6643
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6644 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
6645
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6646 dpyinfo->reference_count--;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6647 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6648
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6649
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6650 /* 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
6651
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6652 /* 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
6653 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
6654 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
6655 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
6656 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
6657 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6658 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
6659 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
6660 long flags;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6661 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
6662 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6663 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
6664 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
6665 XSizeHints *size_hints;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6666
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6667 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
6668 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
6669 width_inc = FRAME_COLUMN_WIDTH (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6670 height_inc = FRAME_LINE_HEIGHT (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6671
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6672 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
6673
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6674 size_hints = FRAME_SIZE_HINTS (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6675 if (size_hints == NULL)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6676 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6677 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
6678 bzero (size_hints, sizeof (XSizeHints));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6679 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6680
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6681 size_hints->flags |= PResizeInc | PMinSize | PBaseSize ;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6682 size_hints->width_inc = width_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6683 size_hints->height_inc = height_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6684 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
6685 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
6686 size_hints->base_width = base_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6687 size_hints->base_height = base_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6688
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6689 if (flags)
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6690 size_hints->flags = flags;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6691 else if (user_position)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6692 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6693 size_hints->flags &= ~ PPosition;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6694 size_hints->flags |= USPosition;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6695 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6696 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6697
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6698 #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
6699 /* 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
6700
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6701 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6702 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
6703 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
6704 int state;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6705 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6706 #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
6707 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
6708
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6709 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
6710 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
6711 #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
6712 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
6713
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6714 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
6715 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
6716
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6717 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
6718 #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
6719 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6720
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6721 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6722 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
6723 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
6724 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
6725 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6726 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
6727
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6728 #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
6729 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
6730 #endif
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 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
6733 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6734 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
6735 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
6736 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6737 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6738 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6739 /* 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
6740 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
6741 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
6742 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
6743 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
6744 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
6745 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
6746 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6747 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
6748 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6749 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6750 #endif
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6753 #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
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 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
6757 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
6758 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
6759 }
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 #else /* not USE_X_TOOLKIT */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6762
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6763 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
6764 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
6765
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6766 #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
6767 }
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 #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
6770
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6771 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6772 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
6773 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
6774 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
6775 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6776 #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
6777 #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
6778 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
6779 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6780 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
6781 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6782
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6783 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
6784 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
6785 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
6786
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6787 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
6788 #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
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6792 /***********************************************************************
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6793 XLFD Pattern Match
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6794 ***********************************************************************/
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6795
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6796 /* 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
6797 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
6798 struct xlfdpat_block
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6799 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6800 /* 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
6801 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
6802 int len;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6803
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6804 /* 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
6805 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
6806 sentinel. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6807 unsigned char *pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6808
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6809 /* 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
6810 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
6811
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6812 /* 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
6813 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
6814 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
6815 int skip[256];
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6816
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6817 /* 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
6818 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
6819 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
6820 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
6821 };
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6822
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6823 struct xlfdpat
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6824 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6825 /* 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
6826 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
6827 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
6828 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
6829 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
6830 unsigned char *buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6831
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6832 /* 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
6833 normalized pattern string. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6834 int nchars;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6835
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6836 /* 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
6837 int trailing_anychars;
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 /* 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
6840 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
6841 int nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6842 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
6843 };
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6844
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6845 static void
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6846 xlfdpat_destroy (pat)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6847 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6848 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6849 if (pat)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6850 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6851 if (pat->buf)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6852 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6853 if (pat->blocks)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6854 xfree (pat->blocks);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6855 xfree (pat->buf);
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 xfree (pat);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6858 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6859 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6860
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6861 static struct xlfdpat *
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6862 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
6863 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
6864 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6865 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6866 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
6867 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
6868 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
6869 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
6870
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6871 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
6872 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
6873
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6874 /* 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
6875 nblocks = 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6876 anychar_head = NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6877 q = pat->buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6878 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
6879 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
6880 {
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
6881 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
6882
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6883 if (c == '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6884 if (last_char == '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6885 /* ...a** -> ...a* */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6886 continue;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6887 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6888 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6889 if (last_char == '?')
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6890 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6891 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
6892 /* ...*??* -> ...*?? */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6893 continue;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6894 else
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6895 /* ...a??* -> ...a*?? */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6896 {
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6897 *anychar_head++ = '*';
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6898 c = '?';
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6899 }
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
6900 }
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6901 nblocks++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6902 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6903 else if (c == '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6904 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6905 if (last_char != '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6906 anychar_head = q;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6907 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6908 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6909 /* 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
6910 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
6911 if (isascii (c))
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6912 c = tolower (c);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6913
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6914 *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
6915 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6916 *q = '\0';
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6917 nblocks++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6918 pat->nblocks = nblocks;
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 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
6921 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6922 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6923 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
6924 q = anychar_head;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6925 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6926 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
6927
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6928 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
6929 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6930 /* 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
6931 pat->blocks = NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6932 return pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6933 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6934
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6935 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
6936
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6937 /* 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
6938 p = pat->buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6939 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
6940 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6941 blk->pattern = p;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6942 while (*p != '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6943 p++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6944 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
6945 p++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6946 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6947 blk->pattern = p;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6948 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
6949
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6950 /* 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
6951 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
6952 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
6953 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6954 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
6955 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
6956
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6957 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
6958 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
6959 break;
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 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
6962 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
6963
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6964 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
6965 while (--skip > 0)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6966 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
6967
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6968 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
6969 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6970
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6971 return pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6972 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6973
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6974 static INLINE int
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6975 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
6976 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6977 {
65643
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
6978 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
6979 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6980
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6981 /* 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
6982 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
6983 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
6984
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
6985 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
6986 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
6987 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
6988 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
6989 int start_max;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6990 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6991 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
6992 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
6993 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
6994
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6995 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
6996 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
6997 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
6998
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6999 /* 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
7000 use of `infinity'. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7001 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
7002 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
7003
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7004 start = 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7005 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7006 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7007 /* 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
7008 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
7009 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7010 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7011 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
7012 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7013 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
7014
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7015 if (start < infinity)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7016 /* 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
7017 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7018
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7019 /* 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
7020 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
7021 start -= infinity;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7022
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7023 /* 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
7024 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
7025 p = blk->pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7026 s = string + start;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7027 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7028 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7029 while (*p++ == *s++)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7030 ;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7031 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7032 while (*(p - 1) == '?');
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 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
7035 /* Matched. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7036 return string + start;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7037
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7038 /* Didn't match. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7039 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
7040 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7041 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
7042
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7043 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7044 }
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 #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
7047 ((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
7048 : 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
7049
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7050 /* 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
7051 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
7052
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7053 static int
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7054 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
7055 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
7056 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
7057 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7058 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
7059 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
7060 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
7061
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7062 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
7063
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7064 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
7065 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
7066
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7067 /* 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
7068 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
7069 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
7070 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
7071 return 0;
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 /* 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
7074 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
7075
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7076 /* 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
7077 of the string. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7078 nblocks = pat->nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7079 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
7080 if (nblocks == 1)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7081 /* 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
7082 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
7083 && (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
7084 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
7085 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
7086 return 0;
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 /* 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
7089 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
7090 blk = pat->blocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7091 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
7092 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7093 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
7094 if (s == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7095 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7096 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
7097 }
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 /* 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
7100 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
7101 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
7102 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7103 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
7104 if (s == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7105 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7106 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
7107 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
7108 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7109
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7110 return 1;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7111 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7112
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7113
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7114 /***********************************************************************
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7115 Fonts
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7116 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7117
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7118 /* 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
7119
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7120 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
7121 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
7122 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
7123 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
7124 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7125 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
7126 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7127
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7128 /* 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
7129 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
7130 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
7131 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
7132
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7133 /* 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
7134 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
7135 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
7136 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
7137 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
7138 #if USE_ATSUI
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7139 /* 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
7140 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
7141 /* 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
7142 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
7143 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
7144 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7145
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7146 /* 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
7147 coding system. */
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7148 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
7149
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7150 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
7151 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
7152 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7153 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
7154
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7155 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
7156 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7157 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
7158 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
7159 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
7160
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7161 if (!(CONSP (charset_info)
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7162 && STRINGP (charset = XCAR (charset_info))
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7163 && CONSP (XCDR (charset_info))
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7164 && INTEGERP (text_encoding = XCAR (XCDR (charset_info)))
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7165 && CONSP (XCDR (XCDR (charset_info)))
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7166 && SYMBOLP (coding_system = XCAR (XCDR (XCDR (charset_info))))))
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7167 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7168
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7169 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
7170 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
7171 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
7172 result);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7173 else
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7174 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
7175 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
7176 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
7177 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7178
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7179 return result;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7180 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7181
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7182
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7183 static void
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7184 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
7185 char *name;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7186 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
7187 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
7188 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7189 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
7190 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
7191
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7192 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
7193 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7194 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
7195 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
7196 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7197
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7198 if (*p)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7199 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7200 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
7201 coding.src_multibyte = 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7202 coding.dst_multibyte = 1;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7203 coding.mode |= CODING_MODE_LAST_BLOCK;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7204 coding.composing = COMPOSITION_DISABLED;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7205 buf = (char *) alloca (size);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7206
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7207 decode_coding (&coding, name, buf, strlen (name), size - 1);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7208 bcopy (buf, name, coding.produced);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7209 name[coding.produced] = '\0';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7210 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7211 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7212
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7213 /* 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
7214 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
7215 "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
7216 p = strchr (name, '-');
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7217 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
7218 *p = '_';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7219
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7220 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
7221 /* 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
7222 for some locales. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7223 if (isascii (*p))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7224 *p = tolower (*p);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7225 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7226
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7227
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7228 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
7229 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
7230 const char *name;
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7231 int size;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7232 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
7233 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
7234 {
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7235 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
7236 Str255 family;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7237 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
7238 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
7239
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7240 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
7241 charset = cs;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7242 else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7243 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7244 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
7245 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
7246 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7247
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7248 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
7249 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
7250 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
7251
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7252 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
7253 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
7254 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
7255 /* 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
7256 for some locales. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7257 if (isascii (*p))
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7258 *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
7259 return result;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7260 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7261
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7262
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7263 /* 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
7264 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
7265 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
7266 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
7267 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
7268 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
7269 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
7270 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
7271 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
7272
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7273 const int kDefaultFontSize = 12;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7274
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7275 static int
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7276 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
7277 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
7278 char *family;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7279 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
7280 Style *style;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7281 char *charset;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7282 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7283 Str31 foundry, weight;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7284 int point_size, avgwidth;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7285 char slant[2], *p;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7286
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7287 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
7288 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
7289 &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
7290 && 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
7291 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
7292 &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
7293 return 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7294
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7295 if (*size == 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7296 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7297 if (point_size > 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7298 *size = point_size / 10;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7299 else if (avgwidth > 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7300 *size = avgwidth / 10;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7301 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7302 if (*size == 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7303 *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
7304
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7305 *style = normal;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7306 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
7307 *style |= bold;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7308 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
7309 *style |= italic;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7310
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7311 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
7312 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7313 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
7314
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7315 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
7316 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7317 /* 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
7318 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
7319 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
7320 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
7321 family[foundry_len] = '-';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7322 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
7323 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
7324 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7325 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7326 return 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7327 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7328
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7329 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
7330 /* 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
7331 for some locales. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7332 if (isascii (*p))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7333 *p = tolower (*p);
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 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
7336 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7337
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7338
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7339 static void
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7340 add_font_name_table_entry (char *font_name)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7341 {
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7342 if (font_name_table_size == 0)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7343 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7344 font_name_table_size = 256;
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7345 font_name_table = (char **)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7346 xmalloc (font_name_table_size * sizeof (char *));
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7347 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7348 else if (font_name_count + 1 >= font_name_table_size)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7349 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7350 font_name_table_size *= 2;
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7351 font_name_table = (char **)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7352 xrealloc (font_name_table,
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7353 font_name_table_size * sizeof (char *));
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7354 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7355
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7356 font_name_table[font_name_count++] = font_name;
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7357 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7358
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
7359 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
7360 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
7361 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
7362 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
7363 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
7364 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
7365 {
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
7366 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
7367 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
7368 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
7369 {
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
7370 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
7371 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
7372 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
7373 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
7374 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
7375 }
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
7376 }
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
7377
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7378 #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
7379 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
7380 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
7381 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
7382 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7383 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
7384 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
7385 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
7386 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
7387 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
7388 #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
7389
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7390 /* 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
7391 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
7392 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
7393 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
7394 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
7395 && 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
7396 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
7397 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7398 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
7399
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7400 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
7401 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7402
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7403 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
7404 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
7405 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
7406 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7407 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
7408 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
7409 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
7410 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
7411 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
7412
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7413 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
7414 &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
7415 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
7416 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
7417
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7418 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
7419 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
7420 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
7421
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7422 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
7423 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
7424 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
7425 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
7426 && (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
7427 do
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7428 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7429 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
7430 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
7431 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7432 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
7433 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
7434 break;
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 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
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 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
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 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
7441
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7442 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
7443 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
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
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7446 static Lisp_Object
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7447 fm_style_to_face_attributes (fm_style)
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7448 FMFontStyle fm_style;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7449 {
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7450 Lisp_Object tem;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7451
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7452 fm_style &= (bold | italic);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7453 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
7454 fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7455 if (!NILP (tem))
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7456 return XCDR (tem);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7457
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7458 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
7459 QCslant, fm_style & italic ? Qitalic : Qnormal);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7460 fm_style_face_attributes_alist =
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7461 Fcons (Fcons (make_number (fm_style), tem),
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7462 fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7463
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7464 return tem;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7465 }
74629
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 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
7468 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
7469 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
7470 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7471 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
7472 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
7473 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
7474
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7475 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
7476 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
7477 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
7478 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
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 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
7481 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
7482 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
7483 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
7484 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
7485 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7486 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
7487 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
7488
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7489 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
7490 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7491
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7492 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
7493 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
7494 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
7495 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7496 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
7497
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7498 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
7499 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
7500 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
7501 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
7502 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
7503 }
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7504 #endif
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
7505
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7506 /* 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
7507 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
7508 Manager need not be accessed every time this information is
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7509 needed. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7510
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7511 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7512 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
7513 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7514 #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
7515 FMFontFamilyIterator ffi;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7516 FMFontFamilyInstanceIterator ffii;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7517 FMFontFamily ff;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7518 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
7519 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
7520
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7521 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
7522
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7523 #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
7524 #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
7525 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
7526 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7527 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
7528 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
7529 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
7530 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
7531 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
7532 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
7533 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
7534 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
7535 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
7536 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
7537
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7538 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
7539 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
7540 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
7541 make_float (DEFAULT_REHASH_THRESHOLD),
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7542 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
7543 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
7544
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7545 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
7546 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
7547 {
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
7548 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
7549 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
7550 }
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7551 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
7552 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
7553 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7554 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
7555
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7556 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
7557 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
7558 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
7559 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
7560 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
7561 else
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7562 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
7563 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
7564 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7565 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
7566 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
7567 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
7568 }
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
7569 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
7570 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
7571 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
7572 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
7573 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7574 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
7575 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
7576 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7577 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7578
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7579 /* 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
7580 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
7581 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
7582 return;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7583 /* 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
7584 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
7585 != noErr)
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7586 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7587 FMDisposeFontFamilyInstanceIterator (&ffii);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7588 return;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7589 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7590
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7591 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
7592
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7593 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
7594 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7595 Str255 name;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7596 FMFont font;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7597 FMFontStyle style;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7598 FMFontSize size;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7599 TextEncoding encoding;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7600 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
7601 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
7602
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7603 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
7604 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7605 p2cstr (name);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7606 if (*name == '.')
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7607 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7608
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7609 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
7610 continue;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7611 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
7612 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
7613 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
7614 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
7615 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
7616 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
7617 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
7618 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
7619 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
7620 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
7621 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
7622 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
7623 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
7624
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7625 /* 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
7626 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
7627 continue;
61658
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 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
7630 == noErr)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7631 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7632 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
7633
65643
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7634 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
7635 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
7636 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
7637 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7638 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7639
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7640 UNGCPRO;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7641
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7642 /* 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
7643 FMDisposeFontFamilyIterator (&ffi);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7644 FMDisposeFontFamilyInstanceIterator (&ffii);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7645 #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
7646 GrafPtr port;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7647 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
7648 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
7649 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
7650 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
7651 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
7652 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
7653 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
7654 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
7655 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
7656 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
7657 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
7658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7659 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
7660 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
7661
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7662 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
7663
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7664 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
7665
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7666 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
7667 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7668 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
7669 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
7670 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7671
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7672 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
7673 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
7674 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
7675 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
7676 continue;
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 TextFont (fontnum);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7679 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
7680 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
7681 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
7682 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
7683 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
7684 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
7685 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
7686 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
7687 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
7688 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
7689 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
7690 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
7691 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
7692 do
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7693 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7694 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
7695
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7696 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
7697 >= 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
7698 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7699 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
7700 + 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
7701 assc_entry
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7702 = (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
7703 + 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
7704 + 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
7705
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7706 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
7707 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7708 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
7709
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7710 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
7711 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
7712 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
7713 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
7714 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7715 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7716
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7717 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
7718 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
7719 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
7720 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
7721 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7722 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
7723 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7724
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7725 UNGCPRO;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7726
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7727 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
7728 #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
7729 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7730
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7731
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7732 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7733 mac_clear_font_name_table ()
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7734 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7735 int i;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7736
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7737 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
7738 xfree (font_name_table[i]);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7739 xfree (font_name_table);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7740 font_name_table = NULL;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7741 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
7742 fm_font_family_alist = Qnil;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7743 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7744
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7745
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7746 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
7747 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7748 XLFD_SCL_PIXEL_SIZE,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7749 XLFD_SCL_POINT_SIZE,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7750 XLFD_SCL_AVGWIDTH,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7751 XLFD_SCL_LAST
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7752 };
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7753
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7754 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
7755 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7756 6, /* PIXEL_SIZE */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7757 7, /* POINT_SIZE */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7758 11, /* AVGWIDTH */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7759 -1
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7760 };
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7761
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7762 static Lisp_Object
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7763 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
7764 const char *pattern;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7765 int maxnames;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7766 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7767 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
7768 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
7769 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
7770 char *scaled;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
7771 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
7772 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
7773 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
7774 int exact;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7775
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7776 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
7777 init_font_name_table ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7778
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7779 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
7780 scl_val[i] = -1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7781
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7782 /* 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
7783 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
7784 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
7785 ptr = pattern;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7786 i = 0;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7787 field = xlfd_scalable_fields;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7788 val = scl_val;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7789 if (*ptr == '-')
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7790 do
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7791 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7792 ptr++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7793 if (i == *field)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7794 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7795 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
7796 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7797 *val = *ptr++ - '0';
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7798 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
7799 *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
7800 if (*ptr != '-')
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7801 *val = -1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7802 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7803 field++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7804 val++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7805 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7806 ptr = strchr (ptr, '-');
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7807 i++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7808 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7809 while (ptr && i < 14);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7810
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7811 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
7812 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7813 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
7814 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
7815 (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
7816 : (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
7817 : -1));
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7818 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
7819 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
7820 (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
7821 : (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
7822 : -1));
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7823 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
7824 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
7825 (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
7826 : (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
7827 : -1));
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7828 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7829 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7830 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
7831
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7832 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
7833 if (pat == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7834 return Qnil;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7835
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7836 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
7837
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7838 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
7839 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7840 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
7841 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7842 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
7843 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
7844 break;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7845 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7846 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
7847 && (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
7848 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7849 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
7850
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7851 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
7852 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
7853 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
7854 "-%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
7855 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
7856 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
7857 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
7858 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
7859
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7860 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
7861 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7862 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
7863 xfree (scaled);
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
7864 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
7865 break;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7866 }
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7867 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7868 xfree (scaled);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7869 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7870 }
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
7871
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7872 xlfdpat_destroy (pat);
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
7873
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7874 return font_list;
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
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7877 /* 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
7878
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7879 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
7880 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
7881 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
7882
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7883 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
7884 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
7885 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
7886 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
7887 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
7888 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7889 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
7890 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
7891 = 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
7892
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7893 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
7894
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7895 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
7896 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
7897 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
7898
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7899 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
7900 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7901 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
7902
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7903 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
7904 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7905
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
7906 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
7907 key = Fcons (pattern, make_number (maxnames));
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
7908
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7909 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
7910 if (!NILP (list))
46169
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
7911 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7912 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
7913 /* 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
7914 goto label_cached;
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
7915 }
61658
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 BLOCK_INPUT;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7918 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
7919 UNBLOCK_INPUT;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7920
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7921 /* 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
7922
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7923 /* 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
7924 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
7925 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
7926 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
7927
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7928 label_cached:
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7929 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
7930 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7931
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7932 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
7933 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7934
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7935
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7936 #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
7937
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7938 /* 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
7939 font table. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7940
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7941 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7942 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
7943 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
7944 XFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7945 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7946 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7947 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
7948
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7949 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
7950
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7951 for (i = 0; i < dpyinfo->n_fonts; i++)
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7952 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
7953 && 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
7954 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7955
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7956 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
7957 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7958
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7959 #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
7960
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7961 /* 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
7962 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
7963 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
7964 "-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
7965 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
7966
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7967 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
7968 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
7969 MacFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7970 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
7971 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7972 *h = FONT_HEIGHT (font);
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
7973 *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
7974 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7977 /* 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
7978 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
7979 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
7980 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
7981 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
7982
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7983 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
7984 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
7985 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
7986 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7987 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7988 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
7989 MacFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7990 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
7991 int old_height = dpyinfo->smallest_font_height;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7992
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7993 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
7994 dpyinfo->smallest_char_width = 100000;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7995
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7996 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
7997 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
7998 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7999 struct font_info *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
8000 int w, h;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8001
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8002 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
8003 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
8004 x_font_min_bounds (font, &w, &h);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8005
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8006 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
8007 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
8008 }
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 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
8011 && 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
8012
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8013 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
8014 || 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
8015 || 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
8016 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8017
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8018
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8019 /* 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
8020 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
8021
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8022 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
8023 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
8024 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
8025 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8026 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8027 char *q;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8028
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8029 if (*p != '-')
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8030 return 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8031
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8032 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
8033 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8034 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
8035 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
8036 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8037 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
8038 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8039 p = q;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8040 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8041
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8042 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
8043 return 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8044
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8045 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
8046 return 0;
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 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8049 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8050
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8051
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
8052 /* 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
8053 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
8054 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
8055 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
8056 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
8057
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8058 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
8059 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
8060 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
8061 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
8062 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8063 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
8064 char *name;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8065 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
8066 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
8067 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
8068 #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
8069 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
8070 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
8071 #endif
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8072 Style fontface;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8073 #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
8074 TextEncoding encoding;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8075 int scriptcode;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8076 #else
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8077 short scriptcode;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8078 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8079 MacFontStruct *font;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8080 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
8081
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8082 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
8083 name = fontname;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8084 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8085 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8086 Lisp_Object matched_fonts;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8087
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8088 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
8089 if (NILP (matched_fonts))
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8090 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
8091 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
8092 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8093
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8094 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
8095 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8096
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8097 #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
8098 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
8099 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8100 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
8101 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
8102 {kATSUFontTag, kATSUSizeTag,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8103 kATSUQDBoldfaceTag, kATSUQDItalicTag};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8104 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
8105 {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
8106 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
8107 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
8108 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
8109 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
8110 {&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
8111 &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
8112 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
8113 {kAllTypographicFeaturesType, kDiacriticsType};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8114 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
8115 {kAllTypeFeaturesOffSelector, kDecomposeDiacriticsSelector};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8116 FMFontStyle style;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
8117
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8118 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
8119 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
8120 return;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8121 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
8122 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
8123 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
8124 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
8125 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
8126 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8127 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
8128 types, selectors);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8129 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
8130 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8131 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
8132 tags, sizes, values);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8133 if (err != noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8134 return NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8135 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
8136 if (err != noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8137 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
8138 scriptcode = kTextEncodingMacUnicode;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8139 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8140 else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8141 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8142 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8143 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
8144
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8145 if (NILP (tmp))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8146 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8147 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
8148 #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
8149 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
8150 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8151 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
8152 #else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8153 scriptcode = FontToScript (fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8154 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8155 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8156
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8157 font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8158
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8159 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
8160 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
8161 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
8162 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
8163 #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
8164 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
8165 #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
8166 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
8167 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
8168 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8169 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8170
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8171 /* 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
8172 "*-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
8173 (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
8174 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
8175 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
8176 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
8177
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8178 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
8179
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8180 #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
8181 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
8182 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8183 OSStatus err;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8184 UniChar c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8185
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8186 font->min_byte1 = 0;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8187 font->max_byte1 = 0xff;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8188 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
8189 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
8190
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8191 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
8192 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
8193 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
8194 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
8195
66841
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8196 #if USE_CG_TEXT_DRAWING
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8197 if (fontnum != -1)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8198 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8199 FMFontStyle style;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8200 ATSFontRef ats_font;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8201
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8202 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
8203 &font_id, &style);
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8204 /* 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
8205 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
8206 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8207 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
8208 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
8209 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8210 }
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
8211
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8212 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
8213 {
84e6726893ef (XCreateGC, x_per_char_metric, xlfdpat_create)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69964
diff changeset
8214 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
8215 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
8216 }
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
8217 #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
8218 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
8219 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
8220 &font->ascent, &font->descent,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8221 space_bounds,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8222 #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
8223 (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
8224 : NULL)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8225 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8226 NULL
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8227 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8228 );
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
8229 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
8230 || 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
8231 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8232 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
8233 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8234 }
70304
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8235
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
8236 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
8237 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
8238 {
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
8239 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
8240 /* 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
8241 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
8242 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
8243 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8244 #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
8245 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
8246 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8247 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
8248 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
8249 continue;
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8250 }
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8251 #endif
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8252 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
8253 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8254
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8255 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
8256 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
8257 #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
8258 (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
8259 : NULL)
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
8260 #else
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8261 NULL
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8262 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8263 );
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8264
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8265 #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
8266 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
8267 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8268 /* 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
8269 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
8270 CGFontRelease (font->cg_font);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8271 font->cg_font = NULL;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8272 xfree (font->cg_glyphs);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8273 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
8274 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
8275 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
8276 }
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 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8278 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8279 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8280 else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8281 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8282 {
74629
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8283 OSStatus err;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8284 FontInfo the_fontinfo;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8285 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
8286
73133
7156654b0c06 (mac_compute_glyph_string_overhangs, XLoadQueryFont)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73114
diff changeset
8287 #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
8288 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
8289 #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
8290 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
8291
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8292 TextFont (fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8293 TextSize (size);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8294 TextFace (fontface);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8295
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8296 GetFontInfo (&the_fontinfo);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8297
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8298 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
8299 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
8300
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8301 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
8302 || font->mac_scriptcode == smTradChinese
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8303 || font->mac_scriptcode == smSimpChinese
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8304 || font->mac_scriptcode == smKorean);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8305
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8306 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
8307 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8308 int char_width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8309
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8310 font->min_byte1 = 0xa1;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8311 font->max_byte1 = 0xfe;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8312 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
8313 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
8314
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8315 /* 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
8316 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
8317 some fonts. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8318 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
8319 {
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8320 case smJapanese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8321 font->min_byte1 = 0x81;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8322 font->max_byte1 = 0xfc;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8323 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
8324 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
8325 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
8326 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8327 case smTradChinese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8328 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
8329 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
8330 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8331 case smSimpChinese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8332 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
8333 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8334 case smKorean:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8335 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
8336 break;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8337 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8338
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8339 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
8340
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8341 if (fontface & italic)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8342 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
8343 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8344 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
8345 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
8346 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
8347 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
8348 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
8349
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8350 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
8351 }
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8352 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8353 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8354 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8355
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8356 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
8357 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
8358 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
8359
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8360 font->bounds.per_char =
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8361 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
8362 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
8363 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
8364
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8365 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
8366 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
8367 &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
8368 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
8369 {
1accf28d80f2 (mac_query_char_extents) [USE_ATSUI]: Don't call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74567
diff changeset
8370 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
8371 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
8372 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8373
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8374 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
8375 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
8376 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8377 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8378
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8379 if (space_bounds)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8380 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8381 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8382
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8383 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
8384 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
8385 if (pcm->width > 0)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8386 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8387 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
8388 pcm->lbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8389 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
8390 pcm->rbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8391 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
8392 pcm->width);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8393 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
8394 pcm->ascent);
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
8395 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
8396 pcm->descent);
67733
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->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
8399 pcm->lbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8400 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
8401 pcm->rbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8402 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
8403 pcm->width);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8404 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
8405 pcm->ascent);
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
8406 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
8407 pcm->descent);
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8408 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8409 if (
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8410 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8411 font->mac_style == NULL &&
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8412 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8413 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
8414 && 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
8415 && 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
8416 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8417 /* 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
8418 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
8419 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
8420 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8421 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8422
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
8423 #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
8424 /* 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
8425 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
8426 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
8427 if (
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
8428 #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
8429 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
8430 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
8431 (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
8432 || 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
8433 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
8434 #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
8435
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8436 return font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8437 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8438
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8439
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8440 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8441 mac_unload_font (dpyinfo, font)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8442 struct mac_display_info *dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8443 XFontStruct *font;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8444 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8445 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
8446 #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
8447 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
8448 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8449 int i;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8450
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8451 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
8452 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
8453 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
8454 xfree (font->bounds.rows);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8455 ATSUDisposeStyle (font->mac_style);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8456 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8457 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8458 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8459 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
8460 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
8461 #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
8462 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
8463 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
8464 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
8465 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
8466 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8467 xfree (font);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8468 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8469
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8470
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8471 /* 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
8472 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
8473 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
8474 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
8475
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8476 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
8477 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
8478 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
8479 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
8480 int size;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8481 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8482 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
8483 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
8484
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8485 /* 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
8486 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
8487 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
8488 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
8489
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8490 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
8491 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8492 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
8493 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8494
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8495 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
8496 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
8497 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
8498 && (!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
8499 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
8500 || !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
8501 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
8502 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
8503 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8504 else
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8505 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
8506
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8507 /* 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
8508 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8509 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
8510 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
8511 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8512
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8513 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
8514
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8515 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
8516 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
8517 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
8518 if (!font)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8519 return NULL;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8520
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8521 /* 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
8522 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
8523 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
8524 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8525
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8526 /* 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
8527 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
8528 && 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
8529 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8530 int sz;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8531 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
8532 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
8533 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
8534 = (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
8535 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8536
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8537 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
8538 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
8539 ++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
8540
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8541 /* 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
8542 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
8543 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
8544 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
8545 fontp->font_idx = i;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8546 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
8547 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
8548
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8549 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
8550 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8551 /* Fixed width font. */
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8552 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
8553 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8554 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8555 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8556 XChar2b char2b;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8557 XCharStruct *pcm;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8558
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8559 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
8560 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
8561 if (pcm)
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8562 fontp->space_width = pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8563 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8564 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
8565
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8566 if (pcm)
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8567 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8568 int width = pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8569 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
8570 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
8571 width += pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8572 fontp->average_width = width / 95;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8573 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8574 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8575 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
8576 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8577
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8578 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
8579 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
8580
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8581 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
8582 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
8583 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8584 /* 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
8585 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
8586 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
8587 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
8588 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
8589 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8590
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8591 /* 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
8592 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
8593 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
8594 (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
8595 2:0xA020..0xFF7F). For the moment, we don't know which charset
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8596 uses this font. So, we set information in fontp->encoding[1]
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8597 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
8598 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
8599 if (font->mac_scriptcode == smJapanese)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8600 fontp->encoding[1] = 4;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8601 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8602 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8603 fontp->encoding[1]
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8604 = (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
8605 /* 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
8606 ? (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
8607 ? (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
8608 ? 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
8609 : 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
8610 : 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
8611 /* 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
8612 : (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
8613 ? (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
8614 ? (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
8615 ? (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
8616 ? 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
8617 : 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
8618 : 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
8619 : 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
8620 : (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
8621 ? (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
8622 ? 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
8623 : 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
8624 : 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
8625 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8626
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8627 #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
8628 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
8629 = (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
8630 ? (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
8631 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
8632 = (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
8633 ? (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
8634 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
8635 = (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
8636 ? (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
8637 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8638 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
8639 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
8640 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
8641 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8642
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8643 /* 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
8644 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
8645 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
8646 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
8647 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
8648 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
8649 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8650 return fontp;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8651 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8652 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8653
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8654
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8655 /* 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
8656 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
8657
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8658 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
8659 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
8660 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
8661 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
8662 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8663 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
8664 int i;
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 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
8667 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
8668 && (!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
8669 || !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
8670 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
8671 return NULL;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8672 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8673
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8674
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8675 /* 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
8676 `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
8677
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8678 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8679 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
8680 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
8681 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8682 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
8683
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8684 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
8685 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8686 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
8687 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
8688 && 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
8689 && (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
8690 >= 0))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8691 break;
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 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
8694 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8695 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
8696 = (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
8697
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8698 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
8699 xfree (ccl);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8700 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8701 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
8702 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8703 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8704
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8705 #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
8706 /* 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
8707 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
8708 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
8709 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
8710 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
8711
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8712 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
8713 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
8714 {
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8715 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
8716 }
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8717
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8718 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
8719 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
8720 {
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8721 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
8722
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8723 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
8724 }
380e4a856f30 (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71021
diff changeset
8725
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8726 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
8727 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
8728 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
8729 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
8730 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8731 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
8732 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
8733 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
8734
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
8735 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
8736 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
8737
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8738 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
8739 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8740 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
8741
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8742 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
8743 {
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8744 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
8745
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8746 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
8747 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
8748 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
8749 }
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8750 }
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8751
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8752 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
8753 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
8754 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8755 {
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
8756 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
8757 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8758 FontSelectionQDStyle qd_style;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8759
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8760 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
8761 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
8762 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
8763 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
8764 qd_style.hasColor = false;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8765
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8766 err = SetFontInfoForSelection (kFontSelectionQDType,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8767 1, &qd_style, target);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8768 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8769 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8770 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
8771 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
8772 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8773
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8774 return err;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8775 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8776 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8777
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8778
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8779 /* 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
8780
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
8781 #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
8782 #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
8783 #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
8784 #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
8785 #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
8786 #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
8787 #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
8788 #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
8789 #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
8790 #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
8791 #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
8792 #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
8793 #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
8794 #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
8795 #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
8796 #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
8797
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8798 #if __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8799 #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
8800 #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
8801 #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
8802
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
8803 #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
8804 #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
8805
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8806 #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
8807
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8808 #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
8809 #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
8810
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8811 #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
8812
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8813 #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
8814 #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
8815 #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
8816
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8817 /* 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
8818 Lisp_Object Qreverse;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8819
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8820
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8821 /* 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
8822 Lisp_Object Vmac_control_modifier;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8823
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8824 /* 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
8825 Lisp_Object Vmac_option_modifier;
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
8826
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8827 /* 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
8828 Lisp_Object Vmac_command_modifier;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8829
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8830 /* 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
8831 Lisp_Object Vmac_function_modifier;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8832
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8833 /* 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
8834 a three button mouse */
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8835 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
8836
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8837 #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
8838 /* 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
8839 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
8840 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
8841
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
8842 /* 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
8843 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
8844 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
8845
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
8846 /* 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
8847 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
8848 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
8849 #endif
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8850
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8851 /* 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
8852 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
8853 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
8854 static struct input_event *read_socket_inev = NULL;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8855
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8856 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
8857
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8858 /* 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
8859 #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
8860 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
8861 #ifdef MAC_OSX
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8862 extern Lisp_Object Qwindow;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8863 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
8864 #endif
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8865 #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
8866 extern Lisp_Object Qfont;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
8867 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
8868 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
8869 #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
8870 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
8871 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
8872 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
8873 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
8874 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
8875 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
8876 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
8877 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
8878 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
8879 #endif
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
8880 #endif
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
8881 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
8882 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
8883 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
8884 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
8885 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
8886 Lisp_Object *));
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
8887 extern OSErr init_coercion_handler P_ ((void));
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8888
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8889 /* 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
8890 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
8891 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
8892
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
8893 /* 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
8894 extern OSStatus install_menu_target_item_handler P_ ((WindowPtr));
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8895
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8896 #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
8897 #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
8898 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
8899 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
8900 #endif
75100
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
8901
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8902 /* Window Event Handler */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8903 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
8904 EventRef, void *);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8905 #endif
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
8906 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
8907
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8908 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
8909 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
8910
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8911 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
8912 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
8913
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8914 /* 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
8915 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
8916 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
8917 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
8918 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
8919 <linefeed>). */
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
8920 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
8921 /*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
8922 /*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
8923 /*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
8924
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8925 /*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
8926 /*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
8927 /*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
8928 /*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
8929
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8930 /*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
8931 /*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
8932 /*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
8933 /*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
8934
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8935 /*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
8936 /*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
8937 /*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
8938 /*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
8939
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8940 /*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
8941 /*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
8942 /*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
8943 /*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
8944
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8945 /*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
8946 /*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
8947 /*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
8948 /*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
8949 };
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8950
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8951 #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
8952 /* 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
8953 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
8954 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
8955 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
8956 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
8957 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
8958 /*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
8959 /*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
8960 /*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
8961
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8962 /*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
8963 /*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
8964 /*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
8965 /*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
8966
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8967 /*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
8968 /*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
8969 /*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
8970 /*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
8971
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8972 /*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
8973 /*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
8974 /*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
8975 /*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
8976
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8977 /*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
8978 /*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
8979 /*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
8980 /*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
8981
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8982 /*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
8983 /*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
8984 /*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
8985 /*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
8986 };
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
8987 #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
8988
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
8989 static int
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8990 #if USE_CARBON_EVENTS
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8991 mac_to_emacs_modifiers (UInt32 mods)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8992 #else
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8993 mac_to_emacs_modifiers (EventModifiers mods)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8994 #endif
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8995 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8996 unsigned int result = 0;
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8997 if (mods & shiftKey)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8998 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
8999
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9000 /* Deactivated to simplify configuration:
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9001 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
9002 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
9003 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
9004 composed one.
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9005 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
9006 (( !NILP(Vmac_option_modifier) ||
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9007 ((mods & cmdKey) || (mods & controlKey))))) */
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9008
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
9009 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
9010 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
9011 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9012 result |= XUINT(val);
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
9013 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9014 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
9015 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
9016 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9017 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
9018 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9019 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
9020 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
9021 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9022 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
9023 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9024
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9025 #ifdef MAC_OSX
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9026 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
9027 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
9028 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9029 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
9030 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
9031 #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
9032
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9033 return result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9034 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9035
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9036 static UInt32
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9037 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
9038 UInt32 modifiers;
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9039 {
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9040 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
9041 (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
9042 | (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
9043 | (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
9044
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9045 #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
9046 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
9047 (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
9048 #endif
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9049
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9050 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
9051 }
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
9052
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9053 static int
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9054 mac_get_emulated_btn ( UInt32 modifiers )
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9055 {
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9056 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
9057 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
9058 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
9059 if (modifiers & cmdKey)
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9060 result = cmdIs3 ? 2 : 1;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9061 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
9062 result = cmdIs3 ? 1 : 2;
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9063 }
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9064 return result;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9065 }
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9066
75200
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9067 #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
9068 /***** 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
9069 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
9070 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
9071
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9072 int
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9073 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
9074 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
9075 {
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9076 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
9077 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
9078 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
9079 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
9080
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9081 /* 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
9082 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
9083 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
9084 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
9085 return 0;
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9086
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9087 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
9088 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
9089 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
9090
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9091 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
9092 & (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
9093 | 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
9094
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9095 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
9096 }
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9097 #endif
659905f1c3a4 (x_free_frame_resources) [USE_CG_DRAWING]: Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75156
diff changeset
9098
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9099 #if USE_CARBON_EVENTS
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9100 /* Obtains the event modifiers from the event ref and then calls
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9101 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
9102 static int
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9103 mac_event_to_emacs_modifiers (EventRef eventRef)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9104 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9105 UInt32 mods = 0;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9106 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9107 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
9108 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
9109 GetEventClass(eventRef) == kEventClassMouse)
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9110 {
56277
fd126130c3cd macterm.c (mac_get_emulated_btn)
Steven Tamm <steventamm@mac.com>
parents: 56271
diff changeset
9111 mods &= ~(optionKey | cmdKey);
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9112 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9113 return mac_to_emacs_modifiers (mods);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9114 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9115
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9116 /* 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
9117 code in the emacs input_event. */
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9118 static int
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9119 mac_get_mouse_btn (EventRef ref)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9120 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9121 EventMouseButton result = kEventMouseButtonPrimary;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9122 GetEventParameter (ref, kEventParamMouseButton, typeMouseButton, NULL,
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9123 sizeof (EventMouseButton), NULL, &result);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9124 switch (result)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9125 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9126 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
9127 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
9128 return 0;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9129 else {
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9130 UInt32 mods = 0;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9131 GetEventParameter (ref, kEventParamKeyModifiers, typeUInt32, NULL,
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9132 sizeof (UInt32), NULL, &mods);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9133 return mac_get_emulated_btn(mods);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
9134 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9135 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
9136 return mac_wheel_button_is_mouse_2 ? 2 : 1;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9137 case kEventMouseButtonTertiary:
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9138 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
9139 return mac_wheel_button_is_mouse_2 ? 1 : 2;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9140 default:
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9141 return 0;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9142 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9143 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9144
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9145 /* Normally, ConvertEventRefToEventRecord will correctly handle all
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9146 events. However the click of the mouse wheel is not converted to a
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9147 mouseDown or mouseUp event. Likewise for dead key down events.
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9148 This calls ConvertEventRef, but then checks to see if it is a mouse
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9149 up/down, or a dead key down carbon event that has not been
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9150 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
9151 XTread_socket loop). */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9152 static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9153 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9154 OSStatus err;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9155 Boolean result = ConvertEventRefToEventRecord (eventRef, eventRec);
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9156
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9157 if (result)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9158 return result;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9159
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9160 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
9161 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9162 case kEventClassMouse:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9163 switch (GetEventKind (eventRef))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9164 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9165 case kEventMouseDown:
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9166 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
9167 result = 1;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9168 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9169
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9170 case kEventMouseUp:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9171 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
9172 result = 1;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9173 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9174
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9175 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9176 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9177 }
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
9178 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9179
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9180 case kEventClassKeyboard:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9181 switch (GetEventKind (eventRef))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9182 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9183 case kEventRawKeyDown:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9184 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9185 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
9186 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
9187
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9188 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
9189 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
9190 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
9191 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
9192 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
9193 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
9194 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
9195 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
9196 {
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9197 eventRec->what = keyDown;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9198 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
9199 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
9200 }
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9201 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9202 break;
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 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9205 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9206 }
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
9207 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9208
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9209 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9210 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9211 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9212
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9213 if (result)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9214 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9215 /* 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
9216 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
9217
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9218 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
9219 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
9220 /* 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
9221 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
9222 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
9223 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
9224 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
9225
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9226 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
9227 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9228
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9229 return result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9230 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9231
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9232 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9233
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
9234 #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
9235 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9236 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
9237 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9238 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
9239 MenuHandle menu_handle;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9240
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9241 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
9242 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
9243 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9244 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
9245 DrawMenuBar ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9246
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9247 #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
9248 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
9249 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
9250 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
9251 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9252 abort ();
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9253 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9254 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9255
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9256
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9257 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9258 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
9259 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9260 #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
9261 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
9262 InitFonts ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9263 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
9264 InitWindows ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9265 InitMenus ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9266 TEInit ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9267 InitDialogs (NULL);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9268 #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
9269 InitCursor ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9270
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9271 #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
9272 /* 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
9273 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
9274
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9275 /* 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
9276 complicated scripts */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9277 MaxApplZone ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9278 MoreMasters ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9279 #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
9280 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9281
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9282 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9283 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
9284 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9285 SInt32 physical_ram_size, logical_ram_size;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9286
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9287 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
9288 || 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
9289 || 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
9290 || 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
9291 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9292 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
9293 exit (1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9294 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9295 }
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
9296 #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
9297
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9298 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9299 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
9300 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9301 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
9302
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9303 BeginUpdate (win);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9304
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9305 /* 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
9306 below. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9307 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
9308 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9309 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
9310 {
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
9311 /* 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
9312 #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
9313 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
9314 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
9315 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
9316 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9317 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9318 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
9319 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9320 Rect r;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9321 #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
9322 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
9323
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
9324 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
9325 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
9326 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
9327 #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
9328 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
9329 #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
9330 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
9331 DisposeRgn (region);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9332 #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
9333 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
9334 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
9335 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
9336 #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
9337 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9338 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9339
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9340 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
9341 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9342
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9343 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9344 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
9345 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9346 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
9347
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9348 if (!win)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9349 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9350
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9351 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
9352 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
9353 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
9354 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9355
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9356 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9357 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9358
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9359 #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
9360 static OSStatus
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9361 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
9362 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9363 OSStatus err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9364 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
9365
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9366 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
9367
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9368 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
9369 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
9370 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
9371 && 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
9372 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
9373 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
9374 && 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
9375 && 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
9376 && CONSP (saved_ts_script_language_on_focus)
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
9377 && 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
9378 XCAR (Vmac_ts_script_language_on_focus))
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
9379 && 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
9380 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
9381 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9382 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
9383 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
9384 slptr = &slrec;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9385 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9386 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9387
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9388 if (slptr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9389 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9390 #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
9391 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
9392 kKeyboardInputMethodClass);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9393 #else
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9394 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
9395 #endif
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9396 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
9397 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
9398
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9399 /* 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
9400 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
9401 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
9402 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9403
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9404 return err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9405 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9406
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9407 static OSStatus
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9408 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
9409 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9410 OSStatus err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9411 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
9412
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
9413 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
9414
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9415 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
9416 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9417 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
9418 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
9419 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
9420 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9421 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
9422 && 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
9423 && 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
9424 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9425 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
9426 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
9427 slptr = &slrec;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9428 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9429
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9430 if (slptr)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9431 {
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9432 #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
9433 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
9434 kKeyboardInputMethodClass);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9435 #else
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9436 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
9437 #endif
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 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
9441
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9442 return err;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9443 }
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
9444 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9445
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
9446 #if !TARGET_API_MAC_CARBON
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
9447 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9448 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
9449 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9450 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
9451 SInt16 da_driver_refnum;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9452
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9453 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
9454 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
9455 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9456 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9457 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
9458 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
9459 }
72985
45b141d01846 (menubar_selection_callback): Remove extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72827
diff changeset
9460 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9461 #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
9462
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9463 /* 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
9464 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
9465
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9466 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
9467 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
9468 WindowPtr w;
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9469 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
9470 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9471 Rect limit_rect;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9472 int rows, columns, width, height;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9473 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
9474 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
9475 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
9476 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9477 Rect new_rect;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9478 #else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9479 long grow_size;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9480 #endif
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9481
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9482 if (size_hints->flags & PMinSize)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9483 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9484 min_width = size_hints->min_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9485 min_height = size_hints->min_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9486 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9487 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
9488
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9489 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9490 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
9491 return;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9492 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
9493 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
9494 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9495 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
9496 /* 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
9497 if (grow_size == 0)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9498 return;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9499 height = HiWord (grow_size);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9500 width = LoWord (grow_size);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9501 #endif
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9502
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9503 if (width != FRAME_PIXEL_WIDTH (f)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9504 || height != FRAME_PIXEL_HEIGHT (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9505 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9506 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
9507 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9508
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9509 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
9510 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9511 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9512
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9513
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9514 #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
9515 static Point
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9516 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
9517 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
9518 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9519 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
9520 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
9521 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
9522 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
9523 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
9524
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9525 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
9526 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
9527 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
9528 /* 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
9529 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
9530 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
9531 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
9532 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
9533 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
9534 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
9535
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9536 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
9537 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9538 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9539
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9540 /* 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
9541 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
9542 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
9543 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
9544
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9545 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9546 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
9547 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9548 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
9549 int width, height;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9550 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
9551 #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
9552 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
9553
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9554 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
9555 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
9556 && 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
9557 && 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
9558 zoom_in_or_out = inZoomIn;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
9559 else
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9560 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
9561
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9562 #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
9563 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
9564 #endif
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9565 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
9566 #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
9567 GrafPtr save_port;
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
9568 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
9569 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
9570 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
9571
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9572 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
9573
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9574 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
9575
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9576 /* 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
9577 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
9578 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
9579 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9580 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
9581 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
9582
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9583 /* 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
9584 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
9585 - (**((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
9586
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9587 /* 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
9588 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
9589 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
9590 InsetRect (&zoom_rect, 8, 4); /* not too tight */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
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 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
9593 + 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
9594
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9595 /* 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
9596 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
9597 zoom_rect.bottom =
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9598 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
9599
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9600 (**((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
9601 = zoom_rect;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9602 }
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9603
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
9604 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
9605
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9606 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
9607 #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
9608
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9609 #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
9610 /* 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
9611 #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
9612 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
9613 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9614 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
9615 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9616 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
9617 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
9618
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9619 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
9620 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
9621 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9622 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9623
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9624 void
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9625 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
9626 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
9627 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
9628 {
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9629 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
9630
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9631 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
9632
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9633 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
9634 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
9635 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
9636 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
9637 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
9638 /* 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
9639 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
9640 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
9641 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
9642 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9643
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9644 #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
9645 static OSStatus
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9646 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
9647 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
9648 AEEventClass class;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9649 AEEventID id;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9650 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
9651 EventRef event;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9652 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
9653 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
9654 const EventParamType *types;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9655 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9656 OSStatus err = eventNotHandledErr;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9657 Lisp_Object binding;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9658
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9659 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
9660 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
9661 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9662 if (INTEGERP (binding))
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9663 err = XINT (binding);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9664 else
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9665 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9666 AppleEvent apple_event;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9667 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
9668 names, types,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9669 &apple_event);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9670 if (err == noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9671 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9672 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
9673 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
9674 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
9675 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9676 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9677 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9678
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9679 return err;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9680 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9681
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9682 void
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9683 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
9684 WindowRef window;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9685 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
9686 SInt16 modifiers;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9687 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
9688 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9689 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
9690
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9691 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
9692
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9693 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
9694 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
9695 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
9696 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
9697 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
9698 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
9699 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
9700 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
9701 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
9702 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9703
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9704 #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
9705 static pascal OSStatus
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9706 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
9707 EventHandlerCallRef next_handler;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9708 EventRef event;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9709 void *data;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9710 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9711 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
9712 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
9713 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
9714 {kEventParamDirectObject, kEventParamKeyModifiers};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9715 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
9716 {typeHICommand, typeUInt32};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9717 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
9718
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9719 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
9720 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
9721 return result;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9722
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9723 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
9724 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
9725
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9726 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
9727 return eventNotHandledErr;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9728
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
9729 /* 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
9730 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
9731 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
9732 Qhi_command, Qnil,
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9733 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
9734 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
9735 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9736
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
9737 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
9738 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
9739 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9740 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
9741 {{kEventClassCommand, kEventCommandProcess}};
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9742 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
9743
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9744 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
9745 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
9746 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
9747 GetEventTypeCount (specs), specs,
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9748 NULL, NULL);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9749 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9750
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9751 static pascal OSStatus
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9752 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
9753 EventHandlerCallRef next_handler;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9754 EventRef event;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9755 void *data;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9756 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9757 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
9758 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
9759 struct frame *f;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9760 UInt32 attributes;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9761 XSizeHints *size_hints;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
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 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
9764 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
9765 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
9766 return eventNotHandledErr;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9767
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9768 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
9769 switch (GetEventKind (event))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9770 {
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9771 case kEventWindowUpdate:
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9772 result = CallNextEventHandler (next_handler, event);
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9773 if (result != eventNotHandledErr)
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9774 return result;
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9775
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9776 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
9777 return noErr;
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9778
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9779 case kEventWindowGetIdealSize:
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9780 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
9781 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
9782 return result;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9783
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9784 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9785 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
9786
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9787 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
9788 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
9789 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
9790 return noErr;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9791 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9792 break;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9793
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9794 case kEventWindowBoundsChanging:
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9795 result = CallNextEventHandler (next_handler, event);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9796 if (result != eventNotHandledErr)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9797 return result;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9798
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9799 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
9800 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
9801 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
9802 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9803
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9804 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
9805 if ((attributes & kWindowBoundsChangeUserResize)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9806 && ((size_hints->flags & (PResizeInc | PBaseSize | PMinSize))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9807 == (PResizeInc | PBaseSize | PMinSize)))
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 Rect bounds;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9810 int width, height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9811
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9812 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
9813 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
9814 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
9815 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
9816 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9817
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9818 width = bounds.right - bounds.left;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9819 height = bounds.bottom - bounds.top;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9820
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9821 if (width < size_hints->min_width)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9822 width = size_hints->min_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9823 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9824 width = size_hints->base_width
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9825 + (int) ((width - size_hints->base_width)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9826 / (float) size_hints->width_inc + .5)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9827 * size_hints->width_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9828
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9829 if (height < size_hints->min_height)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9830 height = size_hints->min_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9831 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9832 height = size_hints->base_height
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9833 + (int) ((height - size_hints->base_height)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9834 / (float) size_hints->height_inc + .5)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9835 * size_hints->height_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9836
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9837 bounds.right = bounds.left + width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9838 bounds.bottom = bounds.top + height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9839 SetEventParameter (event, kEventParamCurrentBounds,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9840 typeQDRectangle, sizeof (Rect), &bounds);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9841 return noErr;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9842 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9843 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
9844
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9845 case kEventWindowBoundsChanged:
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9846 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
9847 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
9848 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
9849 break;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9850
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9851 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
9852 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9853 Rect bounds;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9854
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9855 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
9856 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
9857 NULL, &bounds);
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9858 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
9859 {
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9860 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
9861
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9862 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
9863 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
9864 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
9865 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9866 }
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9867
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9868 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
9869 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
9870
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9871 return noErr;
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9872
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
9873 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
9874 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
9875 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
9876 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
9877 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
9878
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
9879 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
9880 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
9881
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
9882 break;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9883
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9884 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
9885 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
9886 {
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9887 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
9888
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9889 EVENT_INIT (buf);
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9890 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
9891 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
9892 buf.arg = Qnil;
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9893 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
9894 }
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9895 return noErr;
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
9896
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9897 #ifdef MAC_OSX
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9898 case kEventWindowToolbarSwitchMode:
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9899 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
9900 {
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9901 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
9902 kEventParamWindowMouseLocation,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9903 kEventParamKeyModifiers,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9904 kEventParamMouseButton,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9905 kEventParamClickCount,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9906 kEventParamMouseChord};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9907 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
9908 typeQDPoint,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9909 typeUInt32,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9910 typeMouseButton,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9911 typeUInt32,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
9912 typeUInt32};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9913 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
9914
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9915 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
9916 Qwindow,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9917 Qtoolbar_switch_mode,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9918 event, num_params,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9919 names, types);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9920 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
9921 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
9922 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9923
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9924 #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
9925 case kEventWindowFocusAcquired:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9926 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
9927 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
9928 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
9929
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9930 case kEventWindowFocusRelinquish:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
9931 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
9932 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
9933 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
9934 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9935 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9936
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9937 return eventNotHandledErr;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9938 }
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9939
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9940 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
9941 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
9942 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
9943 EventRef event;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9944 void *data;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9945 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9946 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
9947
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9948 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
9949 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9950 case kEventMouseWheelMoved:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9951 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9952 WindowPtr wp;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9953 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
9954 EventMouseWheelAxis axis;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9955 SInt32 delta;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9956 Point point;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9957
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9958 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
9959 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
9960 return result;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9961
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9962 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
9963 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
9964 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
9965 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9966
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9967 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
9968 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
9969 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9970
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9971 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
9972 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
9973 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
9974 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
9975 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9976
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9977 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
9978 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
9979 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
9980 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
9981 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9982 err = GetEventParameter (event, kEventParamMouseLocation,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9983 typeQDPoint, NULL, sizeof (Point),
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9984 NULL, &point);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9985 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
9986 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9987 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
9988 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
9989 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
9990 (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
9991 | ((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
9992 SetPortWindowPort (wp);
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9993 GlobalToLocal (&point);
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9994 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
9995 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
9996 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
9997
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9998 return noErr;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9999 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10000 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10001
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10002 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10003 break;
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
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10006 return eventNotHandledErr;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10007 }
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10008
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10009 #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
10010 static pascal OSStatus
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10011 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
10012 EventHandlerCallRef next_handler;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10013 EventRef event;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10014 void *data;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10015 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10016 OSStatus result, err;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10017 Lisp_Object id_key;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10018 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
10019 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
10020 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
10021 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
10022 kEventParamATSUFontSize,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10023 kEventParamFMFontFamily,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10024 kEventParamFMFontSize,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10025 kEventParamFontColor};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10026 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
10027 typeATSUSize,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10028 typeFMFontFamily,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10029 typeFMFontSize,
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10030 typeFontColor};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10031
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10032 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
10033 if (result != eventNotHandledErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10034 return result;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10035
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10036 switch (GetEventKind (event))
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10037 {
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10038 case kEventFontPanelClosed:
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10039 id_key = Qpanel_closed;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10040 num_params = 0;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10041 names = NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10042 types = NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10043 break;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10044
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10045 case kEventFontSelection:
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10046 id_key = Qselection;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10047 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
10048 names = names_sel;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10049 types = types_sel;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10050 break;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10051 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10052
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10053 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
10054 event, num_params,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10055 names, types);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10056
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10057 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
10058 }
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10059 #endif
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10060
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10061 #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
10062 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
10063 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
10064 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
10065 EventRef event;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10066 void *data;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10067 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10068 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
10069 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
10070 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
10071 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
10072 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
10073 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
10074 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
10075 {kEventParamTextInputSendComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10076 kEventParamTextInputSendRefCon,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10077 kEventParamTextInputSendSLRec,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10078 kEventParamTextInputSendFixLen,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10079 kEventParamTextInputSendText,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10080 kEventParamTextInputSendUpdateRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10081 kEventParamTextInputSendHiliteRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10082 kEventParamTextInputSendClauseRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10083 kEventParamTextInputSendPinRng,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10084 kEventParamTextInputSendTextServiceEncoding,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10085 kEventParamTextInputSendTextServiceMacEncoding,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10086 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
10087 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
10088 {typeComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10089 typeLongInteger,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10090 typeIntlWritingCode,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10091 typeLongInteger,
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10092 #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
10093 typeUnicodeText,
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10094 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10095 typeChar,
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
10096 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10097 typeTextRangeArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10098 typeTextRangeArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10099 typeOffsetArray,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10100 typeTextRange,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10101 typeUInt32,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10102 typeUInt32,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10103 typeUInt32};
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10104 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
10105 {kEventParamTextInputSendComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10106 kEventParamTextInputSendRefCon,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10107 kEventParamTextInputSendSLRec,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10108 kEventParamTextInputSendText};
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10109 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
10110 {typeComponentInstance,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10111 typeLongInteger,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10112 typeIntlWritingCode,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10113 typeUnicodeText};
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10114
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10115 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
10116
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10117 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
10118 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10119 case kEventTextInputUpdateActiveInputArea:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10120 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
10121 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
10122 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
10123 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
10124 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
10125 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
10126 seqno_uaia++;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10127 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10128
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10129 case kEventTextInputUnicodeForKeyEvent:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10130 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10131 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
10132 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
10133
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10134 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
10135 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
10136 &kbd_event);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10137 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
10138 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
10139 typeUInt32, NULL,
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10140 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
10141 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
10142 /* 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
10143 XTread_socket. */
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
10144 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
10145 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
10146 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
10147 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
10148 NULL);
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10149 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
10150 {
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10151 UniChar code;
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10152
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10153 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
10154 typeUnicodeText, NULL,
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10155 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
10156 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
10157 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10158 /* 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
10159 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
10160 {
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10161 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
10162
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10163 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
10164 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
10165 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
10166 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
10167 && 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
10168 {
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10169 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
10170 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
10171
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
10172 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
10173 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
10174 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
10175 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
10176 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
10177 (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
10178 & (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
10179 | 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
10180 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
10181 }
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10182 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10183 return eventNotHandledErr;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10184 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10185 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10186 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10187 /* 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
10188 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
10189 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
10190 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
10191 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
10192 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
10193 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10194
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10195 case kEventTextInputOffsetToPos:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10196 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10197 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
10198 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
10199 Point p;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10200
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10201 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
10202 return eventNotHandledErr;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10203
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10204 /* 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
10205 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
10206 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
10207 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10208 /* 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
10209 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
10210 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
10211 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10212 else
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10213 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10214 /* 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
10215 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
10216 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
10217 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10218
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10219 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
10220 + 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
10221 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
10222 + 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
10223 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
10224 LocalToGlobal (&p);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10225 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
10226 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
10227 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10228 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10229
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10230 default:
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10231 abort ();
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10232 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10233
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10234 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
10235 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
10236 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
10237 names, types);
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10238
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10239 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
10240 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10241 #endif
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10242
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10243 #ifdef MAC_OSX
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10244 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
10245 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
10246 EventRef event;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10247 {
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10248 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
10249 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
10250 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
10251 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
10252 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
10253 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
10254 {kEventParamServiceMessageName, kEventParamServiceUserData};
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10255 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
10256 {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
10257
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10258 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
10259 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10260 case kEventServicePaste:
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10261 id_key = Qpaste;
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10262 num_params = 0;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10263 names = NULL;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10264 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
10265 break;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10266
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10267 case kEventServicePerform:
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10268 id_key = Qperform;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10269 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
10270 names = names_pfm;
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10271 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
10272 break;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10273
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10274 default:
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10275 abort ();
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10276 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10277
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
10278 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
10279 event, num_params,
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10280 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
10281
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10282 return err;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10283 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10284 #endif /* MAC_OSX */
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10285 #endif /* USE_CARBON_EVENTS */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10286
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10287
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
10288 OSStatus
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10289 install_window_handler (window)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10290 WindowPtr window;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10291 {
72545
171c891be45d (mac_draw_string_common, mac_query_char_extents)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72505
diff changeset
10292 OSStatus err = noErr;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10293 #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
10294 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
10295 {{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
10296 {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
10297 {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
10298 {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
10299 {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
10300 {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
10301 {kEventClassWindow, kEventWindowExpanded},
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10302 {kEventClassWindow, kEventWindowCollapsed},
72647
3f73353559c2 (install_window_handler, mac_handle_window_event)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72545
diff changeset
10303 {kEventClassWindow, kEventWindowClose},
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10304 #ifdef MAC_OSX
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10305 {kEventClassWindow, kEventWindowToolbarSwitchMode},
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10306 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10307 #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
10308 {kEventClassWindow, kEventWindowFocusAcquired},
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10309 {kEventClassWindow, kEventWindowFocusRelinquish},
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10310 #endif
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10311 };
73575
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10312 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
10313 {{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
10314 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
10315 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
10316 #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
10317 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
10318 {{kEventClassFont, kEventFontPanelClosed},
c39e3aff703e (mac_create_bitmap_from_bitmap_data): Make variable
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 73385
diff changeset
10319 {kEventClassFont, kEventFontSelection}};
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10320 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
10321 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10322 #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
10323 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
10324 {{kEventClassTextInput, kEventTextInputUpdateActiveInputArea},
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10325 {kEventClassTextInput, kEventTextInputUnicodeForKeyEvent},
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10326 {kEventClassTextInput, kEventTextInputOffsetToPos}};
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10327 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
10328 #endif
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10329
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10330 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
10331 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
10332 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
10333 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
10334 #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
10335 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
10336 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
10337 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10338 #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
10339 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
10340 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
10341 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
10342 #endif
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10343 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
10344 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
10345 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
10346 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
10347 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
10348 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
10349 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
10350 #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
10351 if (err == noErr)
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10352 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
10353 GetEventTypeCount (specs_font),
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10354 specs_font, NULL, NULL);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
10355 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
10356 #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
10357 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
10358 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
10359 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
10360 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
10361 #endif
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
10362 #endif
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
10363 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
10364 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
10365 if (err == noErr)
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
10366 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
10367
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
10368 return err;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10369 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10370
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
10371 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
10372 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
10373 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
10374 {
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10375 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
10376 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10377
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10378
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10379 #if __profile__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10380 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10381 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
10382 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10383 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
10384 ProfilerTerm ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10385 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10386 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10387
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10388 /* 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
10389 (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
10390 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
10391 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
10392 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
10393 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
10394 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
10395 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
10396 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
10397 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
10398 (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
10399 (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
10400 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
10401
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
10402 #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
10403 #undef main
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10404 int
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10405 main (void)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10406 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10407 #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
10408 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
10409 exit(1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10410 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10411
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10412 #if __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10413 /* 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
10414 _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
10415 _ftype = 'TEXT';
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10416 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10417
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10418 do_init_managers ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10419
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10420 do_get_menus ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10421
53651
c7d570b7ba42 (main) [USE_LSB_TAG]: Don't range check the ram.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53606
diff changeset
10422 #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
10423 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
10424 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10425
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10426 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
10427
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10428 init_environ ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10429
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
10430 init_coercion_handler ();
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
10431
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10432 initialize_applescript ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10433
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
10434 init_apple_event_handler ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10435
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10436 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10437 char **argv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10438 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
10439
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10440 /* 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
10441 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
10442 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
10443 argc++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10444
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10445 /* 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
10446 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
10447
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10448 #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
10449 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
10450 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10451
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10452 /* 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
10453 (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
10454 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10455
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10456 /* 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
10457 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10458 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10459 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10460
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10461 #if !USE_CARBON_EVENTS
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10462 static RgnHandle mouse_region = NULL;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10463
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10464 Boolean
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10465 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
10466 EventRecord *er;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10467 UInt32 sleep_time;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10468 Boolean dequeue;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10469 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10470 static EventRecord er_buf = {nullEvent};
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10471 UInt32 target_tick, current_tick;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10472 EventMask event_mask;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10473
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10474 if (mouse_region == NULL)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10475 mouse_region = NewRgn ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10476
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10477 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
10478 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
10479 event_mask -= highLevelEventMask;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10480
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10481 current_tick = TickCount ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10482 target_tick = current_tick + sleep_time;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10483
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10484 if (er_buf.what == nullEvent)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10485 while (!WaitNextEvent (event_mask, &er_buf,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10486 target_tick - current_tick, mouse_region))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10487 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10488 current_tick = TickCount ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10489 if (target_tick <= current_tick)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10490 return false;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10491 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10492
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10493 *er = er_buf;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10494 if (dequeue)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10495 er_buf.what = nullEvent;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10496 return true;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10497 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10498 #endif /* not USE_CARBON_EVENTS */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10499
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10500 #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
10501 OSStatus
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10502 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
10503 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10504 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
10505 OSStatus err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10506
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10507 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
10508 kEventAttributeNone, &event);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10509 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
10510 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10511 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
10512
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10513 GetMouse (&mouse_pos);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10514 LocalToGlobal (&mouse_pos);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10515 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
10516 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
10517 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10518 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
10519 {
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10520 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
10521
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10522 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
10523 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
10524 }
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10525 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
10526 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
10527 kEventPriorityStandard);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10528 if (event)
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10529 ReleaseEvent (event);
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10530
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10531 return err;
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10532 }
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10533
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10534 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
10535 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
10536 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
10537 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
10538 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10539 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
10540
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10541 if (code < 0x80)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10542 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10543 buf->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
10544 buf->code = code;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10545 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10546 else if (code < 0x100)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10547 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10548 if (code < 0xA0)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10549 charset_id = CHARSET_8_BIT_CONTROL;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10550 else
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10551 charset_id = charset_latin_iso8859_1;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10552 buf->kind = MULTIBYTE_CHAR_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
10553 buf->code = MAKE_CHAR (charset_id, 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
10554 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10555 else
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10556 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10557 if (code < 0x2500)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10558 charset_id = charset_mule_unicode_0100_24ff,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10559 code -= 0x100;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10560 else if (code < 0x33FF)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10561 charset_id = charset_mule_unicode_2500_33ff,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10562 code -= 0x2500;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10563 else if (code >= 0xE000)
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10564 charset_id = charset_mule_unicode_e000_ffff,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10565 code -= 0xE000;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10566 c1 = (code / 96) + 32, c2 = (code % 96) + 32;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10567 buf->kind = MULTIBYTE_CHAR_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
10568 buf->code = MAKE_CHAR (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
10569 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
10570 }
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10571 #endif
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
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 /* 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
10574 user. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10575 int
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10576 XTread_socket (sd, expected, hold_quit)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10577 int sd, expected;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10578 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
10579 {
88d1b7a60637 (XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit arg.
Kim F. Storm <storm@cua.dk>
parents: 54150
diff changeset
10580 struct input_event inev;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10581 int count = 0;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10582 #if USE_CARBON_EVENTS
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10583 EventRef eventRef;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10584 EventTargetRef toolbox_dispatcher;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10585 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10586 EventRecord er;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10587 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
10588
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10589 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
10590 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10591 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
10592 return -1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10593 }
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 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
10596 BLOCK_INPUT;
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 /* 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
10599 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
10600
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
10601 ++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
10602
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10603 #if USE_CARBON_EVENTS
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10604 toolbox_dispatcher = GetEventDispatcherTarget ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10605
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
10606 while (
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
10607 #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
10608 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
10609 #endif
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
10610 !ReceiveNextEvent (0, NULL, kEventDurationNoWait,
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10611 kEventRemoveFromQueue, &eventRef))
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10612 #else /* !USE_CARBON_EVENTS */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10613 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
10614 #endif /* !USE_CARBON_EVENTS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10615 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10616 int do_help = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10617 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
10618 unsigned long timestamp;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10619
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10620 EVENT_INIT (inev);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10621 inev.kind = NO_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10622 inev.arg = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10623
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10624 #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
10625 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
10626 #else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10627 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
10628 #endif
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10629
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10630 #if USE_CARBON_EVENTS
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10631 /* Handle new events */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10632 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
10633 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
10634 /* 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
10635 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
10636 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
10637 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
10638 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
10639 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
10640 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
10641 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
10642 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
10643 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
10644 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
10645 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10646 else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10647 #endif /* USE_CARBON_EVENTS */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10648 switch (er.what)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10649 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10650 case mouseDown:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10651 case mouseUp:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10652 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10653 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
10654 ControlPartCode part_code;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10655 int tool_bar_p = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10656
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10657 #if USE_CARBON_EVENTS
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10658 /* 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
10659 buttons to the correct handler. */
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10660 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10661 != eventNotHandledErr)
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10662 break;
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10663 #endif
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
10664 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
10665
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10666 if (dpyinfo->grabbed && last_mouse_frame
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10667 && FRAME_LIVE_P (last_mouse_frame))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10668 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10669 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
10670 part_code = inContent;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10671 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10672 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10673 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10674 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
10675 if (tip_window && window_ptr == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10676 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10677 HideWindow (tip_window);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10678 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
10679 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10680 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10681
66181
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10682 if (er.what != mouseDown &&
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10683 (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
10684 break;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10685
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10686 switch (part_code)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10687 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10688 case inMenuBar:
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10689 f = mac_focus_frame (dpyinfo);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10690 saved_menu_event_location = er.where;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10691 inev.kind = MENU_BAR_ACTIVATE_EVENT;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10692 XSETFRAME (inev.frame_or_window, f);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10693 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10694
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10695 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
10696 if (
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
10697 #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
10698 FrontNonFloatingWindow ()
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
10699 #else
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
10700 FrontWindow ()
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
10701 #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
10702 != 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
10703 || (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
10704 != dpyinfo->x_focus_frame))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10705 SelectWindow (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10706 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10707 {
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
10708 ControlPartCode control_part_code;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10709 ControlHandle ch;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10710 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
10711 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10712 ControlKind control_kind;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10713 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10714
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10715 f = mac_window_to_frame (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10716 /* convert to local coordinates of new window */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10717 SetPortWindowPort (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10718
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10719 GlobalToLocal (&mouse_loc);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10720 #if TARGET_API_MAC_CARBON
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10721 ch = FindControlUnderMouse (mouse_loc, window_ptr,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10722 &control_part_code);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10723 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10724 if (ch)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10725 GetControlKind (ch, &control_kind);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10726 #endif
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10727 #else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10728 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
10729 &ch);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10730 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10731
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10732 #if USE_CARBON_EVENTS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10733 inev.code = mac_get_mouse_btn (eventRef);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10734 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
10735 #else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10736 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
10737 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
10738 #endif
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10739 XSETINT (inev.x, mouse_loc.h);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10740 XSETINT (inev.y, mouse_loc.v);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10741
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10742 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
10743 || (ch != 0
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10744 #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
10745 /* 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
10746 a progress indicator is clicked. */
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10747 && 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
10748 #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
10749 #ifdef MAC_OSX
69964
321089786c7b Don't include gnu.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69773
diff changeset
10750 && 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
10751 #endif /* MAC_OSX */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10752 #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
10753 ))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10754 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10755 struct scroll_bar *bar;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10756
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10757 if (dpyinfo->grabbed && tracked_scroll_bar)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10758 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10759 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
10760 #ifndef USE_TOOLKIT_SCROLL_BARS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10761 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
10762 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10763 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10764 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10765 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
10766 #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
10767 /* 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
10768 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
10769 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
10770 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
10771 &er, &inev);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10772 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
10773 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
10774 mouse_loc, &inev);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10775 else
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10776 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
10777 #else /* not USE_TOOLKIT_SCROLL_BARS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10778 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
10779 &er, &inev);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10780 if (er.what == mouseDown
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10781 && control_part_code == kControlIndicatorPart)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10782 tracked_scroll_bar = bar;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10783 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10784 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
10785 #endif /* not USE_TOOLKIT_SCROLL_BARS */
55851
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 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10788 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10789 Lisp_Object window;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10790 int x = mouse_loc.h;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10791 int y = mouse_loc.v;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10792
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10793 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
10794 if (EQ (window, f->tool_bar_window))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10795 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10796 if (er.what == mouseDown)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10797 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
10798 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10799 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
10800 inev.modifiers);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10801 tool_bar_p = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10802 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10803 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10804 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10805 XSETFRAME (inev.frame_or_window, f);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10806 inev.kind = MOUSE_CLICK_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10807 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10808 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10809
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10810 if (er.what == mouseDown)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10811 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10812 dpyinfo->grabbed |= (1 << inev.code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10813 last_mouse_frame = f;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10814
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10815 if (!tool_bar_p)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10816 last_tool_bar_item = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10817 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10818 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10819 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10820 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
10821 /* 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
10822 previously pressed, that would be because
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10823 of multi-button emulation. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10824 dpyinfo->grabbed = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10825 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10826 dpyinfo->grabbed &= ~(1 << inev.code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10827 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10828
66181
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10829 /* 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
10830 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
10831 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
10832 ButtonPress. */
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10833 if (f != 0)
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10834 f->mouse_moved = 0;
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10835
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10836 #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
10837 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
10838 || (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
10839 && (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
10840 #endif
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10841 switch (er.what)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10842 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10843 case mouseDown:
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10844 inev.modifiers |= down_modifier;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10845 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10846 case mouseUp:
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10847 inev.modifiers |= up_modifier;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10848 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10849 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10850 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10851 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10852
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10853 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
10854 #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
10855 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
10856 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
10857 {
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
10858 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
10859 break;
085795461ed0 (mac_draw_line, mac_draw_line_to_pixmap): Adjust
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70149
diff changeset
10860 }
70384
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10861 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
10862 && (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
10863 != errUserWantsToDragWindow))
a5899b40fd69 (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70304
diff changeset
10864 break;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10865 DragWindow (window_ptr, er.where, NULL);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10866 #else /* not TARGET_API_MAC_CARBON */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10867 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
10868 #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
10869 /* 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
10870 #if !USE_CARBON_EVENTS
56271
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
10871 {
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
10872 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
10873
56271
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
10874 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
10875 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
10876 }
72706
10536ef853fe (mac_handle_origin_change, mac_handle_size_change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72647
diff changeset
10877 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10878 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10879
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10880 case inGoAway:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10881 if (TrackGoAway (window_ptr, er.where))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10882 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10883 inev.kind = DELETE_WINDOW_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10884 XSETFRAME (inev.frame_or_window,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10885 mac_window_to_frame (window_ptr));
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10886 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10887 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10888
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10889 /* window resize handling added --ben */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10890 case inGrow:
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10891 do_grow_window (window_ptr, &er);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10892 break;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10893
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10894 /* window zoom handling added --ben */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10895 case inZoomIn:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10896 case inZoomOut:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10897 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
10898 do_zoom_window (window_ptr, part_code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10899 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10900
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10901 default:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10902 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10903 }
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 break;
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 case updateEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10908 #if USE_CARBON_EVENTS
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10909 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10910 != eventNotHandledErr)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
10911 break;
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10912 #else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10913 do_window_update ((WindowPtr) er.message);
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10914 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10915 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10916
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10917 case osEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10918 #if USE_CARBON_EVENTS
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10919 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10920 != eventNotHandledErr)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
10921 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10922 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10923 switch ((er.message >> 24) & 0x000000FF)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10924 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10925 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
10926 #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
10927 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
10928 mac_tsm_resume ();
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10929 else
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
10930 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
10931 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10932 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10933
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10934 case mouseMovedMessage:
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10935 #if !USE_CARBON_EVENTS
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10936 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
10937 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
10938 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10939 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
10940 help_echo_string = Qnil;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10941
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10942 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
10943 && 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
10944 f = last_mouse_frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10945 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10946 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
10947
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10948 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
10949 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10950 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
10951 clear_mouse_face (dpyinfo);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10952 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10953
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10954 if (f)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10955 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10956 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
10957 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
10958
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10959 SetPortWindowPort (wp);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10960
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10961 GlobalToLocal (&mouse_pos);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10962
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10963 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
10964 #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
10965 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
10966 mouse_pos, &inev);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10967 #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
10968 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
10969 mouse_pos.v
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10970 - 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
10971 er.when * (1000 / 60));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10972 #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
10973 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10974 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10975 /* Generate SELECT_WINDOW_EVENTs when needed. */
72736
f6b18b9949d1 * xdisp.c (mouse_autoselect_window): Removed.
Chong Yidong <cyd@stupidchicken.com>
parents: 72706
diff changeset
10976 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
10977 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10978 Lisp_Object window;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10979
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10980 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
10981 mouse_pos.h,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10982 mouse_pos.v,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10983 0, 0, 0, 0);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10984
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10985 /* 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
10986 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
10987 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
10988 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
10989 if (WINDOWP (window)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10990 && !EQ (window, last_window)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10991 && !EQ (window, selected_window))
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10992 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10993 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
10994 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
10995 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10996
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10997 last_window=window;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10998 }
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
10999 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
11000 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
11001 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11002 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11003
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11004 /* If the contents of the global variable
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11005 help_echo_string has changed, generate a
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11006 HELP_EVENT. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11007 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
11008 do_help = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11009 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11010 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11011 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11012
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11013 case activateEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11014 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11015 WindowPtr window_ptr = (WindowPtr) er.message;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11016
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11017 #if USE_CARBON_EVENTS
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11018 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11019 != eventNotHandledErr)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11020 break;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11021 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11022 if (window_ptr == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11023 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11024 HideWindow (tip_window);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11025 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11026 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11027
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11028 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
11029 break;
57373
38e45bf0128a (x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents: 57357
diff changeset
11030
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11031 if ((er.modifiers & activeFlag) != 0)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11032 {
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11033 /* A window has been activated */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11034 Point mouse_loc = er.where;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11035
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11036 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
11037
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11038 SetPortWindowPort (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11039 GlobalToLocal (&mouse_loc);
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11040 /* 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
11041 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
11042 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
11043 &mouse_loc);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11044 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11045 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11046 {
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11047 /* A window has been deactivated */
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11048 #if USE_TOOLKIT_SCROLL_BARS
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11049 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
11050 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11051 struct input_event event;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11052
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11053 EVENT_INIT (event);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11054 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
11055 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
11056 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
11057 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11058 event.timestamp = timestamp;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11059 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
11060 count++;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11061 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11062 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11063 #endif
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11064 dpyinfo->grabbed = 0;
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
11065
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11066 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
11067
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
11068 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
11069 if (f == dpyinfo->mouse_face_mouse_frame)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11070 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11071 /* 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
11072 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
11073 frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11074 clear_mouse_face (dpyinfo);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11075 dpyinfo->mouse_face_mouse_frame = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11076 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11077
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11078 /* 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
11079 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
11080 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
11081 mouse leaves the frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11082 if (any_help_event_p)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11083 do_help = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11084 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11085 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11086 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11087
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11088 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
11089 case keyUp:
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11090 case autoKey:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11091 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11092 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
11093 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
11094 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
11095 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
11096
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
11097 #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
11098 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
11099 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
11100 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
11101 #endif
75156
a567ccd9c91c (XDrawLine): Rename from mac_draw_line_to_pixmap.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75100
diff changeset
11102 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
11103
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11104 #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
11105 /* 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
11106 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
11107 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
11108 "eventNotHandledErr" and we can process it
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11109 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
11110 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
11111 & ~(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
11112 & ~(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
11113 {
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11114 OSStatus err;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11115
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11116 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
11117 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
11118 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
11119 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
11120 break;
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11121 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11122 #endif
70735
d0bad3102124 (XTread_socket) [TARGET_API_MAC_CARBON && MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70563
diff changeset
11123 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
11124 break;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11125
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11126 ObscureCursor ();
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11127
69773
9dd22c1de682 (XTread_socket): Initialize variable `f' before its use.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69660
diff changeset
11128 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
11129
69660
bc015cae7e3e (XTread_socket): Don't let key-press clear mouse face
Kim F. Storm <storm@cua.dk>
parents: 69512
diff changeset
11130 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
11131 && !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
11132 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11133 clear_mouse_face (dpyinfo);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11134 dpyinfo->mouse_face_hidden = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11135 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11136
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11137 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
11138 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
11139 {
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11140 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
11141
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11142 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
11143 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
11144 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
11145 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
11146 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
11147 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
11148 count++;
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11149 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
11150 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11151
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11152 #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
11153 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
11154 break;
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11155 #endif
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11156
70854
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11157 #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
11158 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
11159 && 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
11160 && 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
11161 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
11162 #endif
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11163 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
11164 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11165 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
11166 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
11167 #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
11168 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
11169 && 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
11170 && 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
11171 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
11172 #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
11173 }
70874
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11174 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
11175 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11176 /* 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
11177 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
11178 #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
11179 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
11180 #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
11181 OSStatus err;
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11182 KeyboardLayoutRef layout;
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11183
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11184 err = KLGetCurrentKeyboardLayout (&layout);
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11185 if (err == noErr)
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11186 KLGetKeyboardLayoutProperty (layout, kKLuchrData,
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11187 (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
11188 #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
11189 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
11190 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
11191 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
11192 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
11193
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11194 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
11195 || 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
11196 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11197 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
11198 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
11199 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11200 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
11201 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
11202 #endif
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11203
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11204 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
11205 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11206 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
11207 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
11208 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
11209 (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
11210 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
11211 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
11212 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
11213 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
11214
76038
82a0ad25cc0d (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75834
diff changeset
11215 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
11216 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
11217 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
11218 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
11219 kUCKeyTranslateNoDeadKeysMask,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11220 &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
11221 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
11222 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
11223 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
11224 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11225 #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
11226
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11227 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
11228 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11229 /* 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
11230 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
11231 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
11232 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
11233 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
11234 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
11235 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
11236 /* 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
11237 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
11238 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
11239 /* 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
11240 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
11241 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
11242 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
11243 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
11244
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11245 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
11246 &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
11247 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
11248 /* 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
11249 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
11250 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
11251 &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
11252 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
11253 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11254 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
11255 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
11256 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11257 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11258 }
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 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
11261 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11262 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
11263 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
11264 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11265
70874
acd53b4b2285 (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70854
diff changeset
11266 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
11267 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
11268 & (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
11269 | 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
11270 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
11271
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11272 #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
11273 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
11274 && 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
11275 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11276 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
11277 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
11278 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
11279
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11280 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
11281 kTextLanguageDontCare,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11282 kTextRegionDontCare,
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11283 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
11284 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
11285 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
11286 {
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11287 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
11288 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
11289 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
11290
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11291 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
11292 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
11293 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
11294 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
11295 &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
11296 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
11297 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
11298 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
11299 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11300 }
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11301 #endif
6384ae23d84a (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70766
diff changeset
11302 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11303 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11304
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11305 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
11306 AEProcessAppleEvent (&er);
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11307 break;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11308
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11309 default:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11310 break;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11311 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11312 #if USE_CARBON_EVENTS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11313 ReleaseEvent (eventRef);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11314 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11315
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11316 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
11317 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
11318 inev.timestamp = timestamp;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11319 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
11320 count++;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11321 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11322
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11323 if (do_help
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11324 && !(hold_quit && hold_quit->kind != NO_EVENT))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11325 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11326 Lisp_Object frame;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11327
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11328 if (f)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11329 XSETFRAME (frame, f);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11330 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11331 frame = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11332
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11333 if (do_help > 0)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
11334 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11335 any_help_event_p = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11336 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
11337 help_echo_object, help_echo_pos);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11338 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11339 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11340 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11341 help_echo_string = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11342 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
11343 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11344 count++;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11345 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11346
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11347 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11348
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11349 /* 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
11350 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
11351 /* ??? 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
11352 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
11353 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11354 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
11355 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
11356 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11357
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
11358 #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
11359 /* 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
11360 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
11361 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
11362 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
11363 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11364 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
11365
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11366 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
11367 {
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11368 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
11369
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11370 /* 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
11371 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
11372 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
11373 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
11374
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11375 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
11376 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
11377 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11378 }
ac7314b59792 (mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
diff changeset
11379 #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
11380
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
11381 --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
11382 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11383 return count;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11384 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11385
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11386
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11387 /* 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
11388 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
11389 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
11390 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
11391 #ifdef __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11392 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11393 __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
11394 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11395 #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
11396 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11397
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11398 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11399 __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
11400 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11401 #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
11402 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11403 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11404
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11405 #ifdef MAC_OS8
47634
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
11406 void
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
11407 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
11408 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11409 Lisp_Object frame;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11410 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
11411
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11412 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
11413
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11414 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
11415 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
11416 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
11417 bzero (f->output_data.mac, sizeof (struct mac_output));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11418
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11419 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
11420
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
11421 FRAME_COLS (f) = 96;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
11422 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
11423
53722
4f64eb1ea148 Move setting of scroll bars from make_mac_frame to
Steven Tamm <steventamm@mac.com>
parents: 53651
diff changeset
11424 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
11425 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
11426
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11427 FRAME_DESIRED_CURSOR (f) = FILLED_BOX_CURSOR;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11428
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11429 f->output_data.mac->cursor_pixel = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11430 f->output_data.mac->border_pixel = 0x00ff00;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11431 f->output_data.mac->mouse_pixel = 0xff00ff;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11432 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
11433
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
11434 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
11435 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
11436 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
11437 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
11438 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
11439 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
11440
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11441 FRAME_FONTSET (f) = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11442 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
11443 f->left_pos = 8;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11444 f->top_pos = 32;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11445 f->border_width = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11446
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11447 f->internal_border_width = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11448
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11449 f->auto_raise = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11450 f->auto_lower = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11451
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11452 f->new_text_cols = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11453 f->new_text_lines = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11454
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11455 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
11456 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
11457 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
11458
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11459 BLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11460
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11461 if (!(FRAME_MAC_WINDOW (f) =
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11462 NewCWindow (NULL, &r, "\p", true, dBoxProc,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11463 (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
11464 abort ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11465 /* 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
11466 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
11467
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11468 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
11469
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11470 x_make_gc (f);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11471
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11472 /* 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
11473 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
11474
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11475 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
11476 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
11477 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
11478 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
11479 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
11480 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
11481 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
11482 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
11483 build_string ("white")), Qnil));
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11484 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11485 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11486
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11487
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11488 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11489 Initialization
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11490 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11491
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11492 int mac_initialized = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11493
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11494 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11495 mac_initialize_display_info ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11496 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11497 struct mac_display_info *dpyinfo = &one_mac_display_info;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11498
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11499 bzero (dpyinfo, sizeof (*dpyinfo));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11500
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11501 #ifdef MAC_OSX
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11502 dpyinfo->mac_id_name
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46169
diff changeset
11503 = (char *) xmalloc (SCHARS (Vinvocation_name)
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46169
diff changeset
11504 + SCHARS (Vsystem_name)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11505 + 2);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11506 sprintf (dpyinfo->mac_id_name, "%s@%s",
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46169
diff changeset
11507 SDATA (Vinvocation_name), SDATA (Vsystem_name));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11508 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11509 dpyinfo->mac_id_name = (char *) xmalloc (strlen ("Mac Display") + 1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11510 strcpy (dpyinfo->mac_id_name, "Mac Display");
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11511 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11512
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11513 dpyinfo->reference_count = 0;
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
11514 dpyinfo->resx = 72.0;
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
11515 dpyinfo->resy = 72.0;
56146
5e784b2ea638 * macfns.c (Fx_display_color_cells): Do not limit return value to 256.
Jan Djärv <jan.h.d@swipnet.se>
parents: 55851
diff changeset
11516 #ifdef MAC_OSX
5e784b2ea638 * macfns.c (Fx_display_color_cells): Do not limit return value to 256.
Jan Djärv <jan.h.d@swipnet.se>
parents: 55851
diff changeset
11517 /* HasDepth returns true if it is possible to have a 32 bit display,
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11518 but this may not be what is actually used. Mac OSX can do better. */
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11519 dpyinfo->color_p = CGDisplaySamplesPerPixel (kCGDirectMainDisplay) > 1;
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11520 dpyinfo->n_planes = CGDisplayBitsPerPixel (kCGDirectMainDisplay);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11521 dpyinfo->height = CGDisplayPixelsHigh (kCGDirectMainDisplay);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11522 dpyinfo->width = CGDisplayPixelsWide (kCGDirectMainDisplay);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11523 #else
56348
550df8e67006 * macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents: 56278
diff changeset
11524 {
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11525 GDHandle main_device_handle = LMGetMainDevice();
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11526
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11527 dpyinfo->color_p = TestDeviceAttribute (main_device_handle, gdDevType);
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11528 for (dpyinfo->n_planes = 32; dpyinfo->n_planes > 0; dpyinfo->n_planes >>= 1)
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11529 if (HasDepth (main_device_handle, dpyinfo->n_planes,
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11530 gdDevType, dpyinfo->color_p))
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11531 break;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11532 dpyinfo->height = (**main_device_handle).gdRect.bottom;
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11533 dpyinfo->width = (**main_device_handle).gdRect.right;
56348
550df8e67006 * macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents: 56278
diff changeset
11534 }
71359
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
11535 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11536 dpyinfo->grabbed = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11537 dpyinfo->root_window = NULL;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
11538 dpyinfo->image_cache = make_image_cache ();
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11539
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11540 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
11541 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
11542 dpyinfo->mouse_face_face_id = DEFAULT_FACE_ID;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11543 dpyinfo->mouse_face_window = Qnil;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11544 dpyinfo->mouse_face_overlay = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
11545 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
11546 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11547
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
11548
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
11549 static XrmDatabase
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11550 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
11551 const char *xrm_option;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11552 {
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
11553 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
11554
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
11555 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
11556 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
11557 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
11558
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
11559 return database;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11560 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11561
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11562 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
11563 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
11564 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
11565 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
11566 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
11567 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11568 struct mac_display_info *dpyinfo;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11569
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11570 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
11571
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11572 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
11573 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11574 mac_initialize ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11575 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
11576 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11577
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11578 if (x_display_list)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11579 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
11580
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11581 mac_initialize_display_info ();
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11582
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11583 dpyinfo = &one_mac_display_info;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11584
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
11585 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
11586
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11587 /* Put this display on the chain. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11588 dpyinfo->next = x_display_list;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11589 x_display_list = dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11590
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11591 /* 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
11592 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
11593 Fcons (Qnil, dpyinfo->xrdb)),
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11594 x_display_name_list);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11595 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
11596
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11597 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
11598
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11599 return dpyinfo;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11600 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11601 /* 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
11602
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11603 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11604 x_delete_display (dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11605 struct mac_display_info *dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11606 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11607 int i;
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 /* 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
11610 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
11611 if (! NILP (x_display_name_list)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11612 && 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
11613 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
11614 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11615 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11616 Lisp_Object tail;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11617
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11618 tail = x_display_name_list;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11619 while (CONSP (tail) && CONSP (XCDR (tail)))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11620 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11621 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
11622 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11623 XSETCDR (tail, XCDR (XCDR (tail)));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11624 break;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11625 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11626 tail = XCDR (tail);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11627 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11628 }
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 if (x_display_list == dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11631 x_display_list = dpyinfo->next;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11632 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11633 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11634 struct x_display_info *tail;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11635
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11636 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
11637 if (tail->next == dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11638 tail->next = tail->next->next;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11639 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11640
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11641 /* 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
11642 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
11643 if (dpyinfo->font_table[i].name)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11644 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11645 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
11646 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
11647 xfree (dpyinfo->font_table[i].name);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11648 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11649
71963
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11650 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
11651 {
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11652 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
11653 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
11654 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
11655 }
a6c0f6b0c790 (keycode_to_xkeysym): Remove function. All uses now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71504
diff changeset
11656 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
11657 xfree (dpyinfo->mac_id_name);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11658
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11659 if (x_display_list == 0)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11660 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11661 mac_clear_font_name_table ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11662 bzero (dpyinfo, sizeof (*dpyinfo));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11663 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11664 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11665
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11666
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11667 static void
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11668 init_menu_bar ()
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11669 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11670 #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
11671 OSStatus err;
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11672 MenuRef menu;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11673 MenuItemIndex menu_index;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11674
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11675 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
11676 &menu, &menu_index);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11677 if (err == noErr)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11678 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
11679 #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
11680 EnableMenuCommand (NULL, kHICommandPreferences);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11681 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
11682 &menu, &menu_index);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11683 if (err == noErr)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11684 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11685 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
11686 InsertMenuItemTextWithCFString (menu, NULL,
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11687 0, kMenuItemAttrSeparator, 0);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11688 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
11689 0, 0, kHICommandAbout);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11690 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11691 #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
11692 #else /* !MAC_OSX */
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11693 #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
11694 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
11695 #endif
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11696 #endif
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11697 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11698
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11699 #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
11700 static void
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11701 init_tsm ()
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11702 {
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11703 #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
11704 static InterfaceTypeList types = {kUnicodeDocument};
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11705 #else
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11706 static InterfaceTypeList types = {kTextService};
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11707 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11708
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11709 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
11710 &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
11711 }
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11712 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11713
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11714 /* 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
11715
50360
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
11716 extern frame_parm_handler mac_frame_parm_handlers[];
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
11717
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11718 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
11719 {
50360
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
11720 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
11721 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
11722 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
11723 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
11724 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
11725 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
11726 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
11727 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
11728 x_update_window_end,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11729 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
11730 x_flush,
76091
746a3424769c (mac_display_info_for_display): Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 76038
diff changeset
11731 #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
11732 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
11733 #else
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
11734 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
11735 #endif
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11736 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
11737 x_get_glyph_overhangs,
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
11738 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
11739 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
11740 #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
11741 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
11742 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
11743 #else
53885
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
11744 0, /* define_fringe_bitmap */
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
11745 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
11746 #endif
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
11747 mac_per_char_metric,
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
11748 mac_encode_char,
59718
d4cb255b034d * dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents: 59655
diff changeset
11749 mac_compute_glyph_string_overhangs,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11750 x_draw_glyph_string,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11751 mac_define_frame_cursor,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11752 mac_clear_frame_area,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11753 mac_draw_window_cursor,
50344
31cf5b909af7 (x_redisplay_interface): Add missing entry for
Andreas Schwab <schwab@suse.de>
parents: 50247
diff changeset
11754 mac_draw_vertical_window_border,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11755 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
11756 };
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11757
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11758 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11759 mac_initialize ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11760 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11761 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
11762
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11763 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
11764 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
11765 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
11766 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
11767 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
11768 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
11769 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
11770 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
11771 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
11772 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
11773 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
11774 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
11775 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
11776 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
11777
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11778 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
11779 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
11780 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
11781 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
11782
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11783 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
11784 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
11785 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
11786 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
11787 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
11788 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
11789 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
11790
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11791 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
11792 any_help_event_p = 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11793
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11794 /* 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
11795 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
11796
57425
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
11797 BLOCK_INPUT;
46121
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11798
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11799 #if TARGET_API_MAC_CARBON
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11800
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11801 #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
11802 #ifdef MAC_OSX
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11803 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
11804 #endif /* MAC_OSX */
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11805
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11806 init_command_handler ();
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11807
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11808 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
11809
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11810 #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
11811 init_tsm ();
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11812 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11813 #endif /* USE_CARBON_EVENTS */
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
11814
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
11815 #ifdef MAC_OSX
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
11816 init_coercion_handler ();
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
11817
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11818 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
11819
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
11820 if (!inhibit_window_system)
75834
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
11821 {
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
11822 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
11823
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
11824 SetFrontProcess (&psn);
3734c13d5900 (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75348
diff changeset
11825 }
46121
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11826 #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
11827 #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
11828
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11829 #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
11830 init_cg_color ();
d4a5d8d2cba2 (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74629
diff changeset
11831
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11832 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
11833 #endif
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11834
57425
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
11835 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
11836 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11837
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11838
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11839 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11840 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
11841 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11842 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11843 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
11844 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
11845 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11846
67101
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
11847 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
11848 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
11849 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
11850 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
11851 Qsuper = intern ("super"); staticpro (&Qsuper);
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
11852 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
11853 staticpro (&Qmodifier_value);
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
11854
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
11855 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
11856 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
11857 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
11858 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
11859 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
11860
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11861 #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
11862 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
11863 #ifdef MAC_OSX
70496
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11864 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
11865 staticpro (&Qtoolbar_switch_mode);
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11866 #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
11867 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
11868 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
11869 #endif
8b2250961fcc (XLoadQueryFont) [USE_ATSUI]: Set FMFontFamily value
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70384
diff changeset
11870
70563
fc3c18e2c3b9 (Qservice) [MAC_OSX]: Rename from Qservices. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70496
diff changeset
11871 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
11872 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
11873 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
11874 #endif
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
11875 #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
11876 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
11877 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
11878 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
11879 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
11880 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
11881 #endif
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11882 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11883
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11884 #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
11885 Fprovide (intern ("mac-carbon"), Qnil);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11886 #endif
49015
c49640262de0 * macterm.c (syms_of_macterm): Provide the feature "mac-carbon" to
Steven Tamm <steventamm@mac.com>
parents: 49003
diff changeset
11887
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11888 staticpro (&Qreverse);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11889 Qreverse = intern ("reverse");
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11890
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11891 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
11892 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
11893
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11894 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
11895 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
11896
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
11897 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
11898 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
11899
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
11900 #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
11901 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
11902 atsu_font_id_hash = Qnil;
71504
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11903
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11904 staticpro (&fm_style_face_attributes_alist);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11905 fm_style_face_attributes_alist = Qnil;
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11906 #endif
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11907
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11908 #if USE_MAC_TSM
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11909 staticpro (&saved_ts_script_language_on_focus);
2b4e59cd1121 (Qeql): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71359
diff changeset
11910 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
11911 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
11912
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
11913 /* 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
11914 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
11915 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
11916 &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
11917 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
11918 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
11919 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
11920 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
11921
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
11922 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
11923 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
11924
73114
983aa36dbb6c (x_underline_at_descent_line): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72985
diff changeset
11925 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
11926 &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
11927 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
11928 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
11929 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
11930 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
11931 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
11932
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11933 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
11934 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
11935 #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
11936 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
11937 #else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11938 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
11939 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11940
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11941 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
11942 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
11943
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
11944 /* 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
11945
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
11946 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
11947 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
11948 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
11949 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
11950 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
11951
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
11952 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
11953 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
11954 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
11955 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
11956 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
11957 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
11958 Vmac_option_modifier = Qnil;
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
11959
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
11960 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
11961 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
11962 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
11963 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
11964 Vmac_command_modifier = Qmeta;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
11965
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
11966 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
11967 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
11968 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
11969 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
11970 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
11971 Vmac_function_modifier = Qnil;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11972
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
11973 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
11974 &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
11975 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
11976 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
11977 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
11978 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
11979 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
11980 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
11981 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
11982 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
11983 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
11984 Vmac_emulate_three_button_mouse = Qnil;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11985
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11986 #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
11987 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
11988 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
11989 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
11990 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
11991 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
11992
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
11993 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
11994 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
11995 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
11996
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
11997 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
11998 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
11999 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
12000
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
12001 #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
12002
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
12003 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
12004 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
12005 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
12006 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
12007 #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
12008 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
12009 #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
12010 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
12011 #endif
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
12012
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
12013 /* 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
12014 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
12015 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
12016 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
12017 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
12018 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
12019
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
12020 (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
12021
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
12022 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
12023 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
12024 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
12025 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
12026 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
12027 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
12028
71178
d098ef877d70 (tsm_document_id) [USE_MAC_TSM]: New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71135
diff changeset
12029 #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
12030 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
12031 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
12032 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
12033
4df3a065ee9b (do_app_resume, do_app_suspend): Remove functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71241
diff changeset
12034 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
12035 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
12036 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
12037 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
12038 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
12039 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
12040 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
12041 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
12042 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12043 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
12044
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
12045 /* arch-tag: f2259165-4454-4c04-a029-a133c8af7b5b
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
12046 (do not change this comment) */