aboutsummaryrefslogtreecommitdiffstats
path: root/src/macfns.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/macfns.c')
-rw-r--r--src/macfns.c327
1 files changed, 111 insertions, 216 deletions
diff --git a/src/macfns.c b/src/macfns.c
index b9f7e2bed5f..160eb1f7774 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -1,5 +1,5 @@
1/* Graphical user interface functions for Mac OS. 1/* Graphical user interface functions for Mac OS.
2 Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc. 2 Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -21,58 +21,34 @@ Boston, MA 02110-1301, USA. */
21/* Contributed by Andrew Choi (akochoi@mac.com). */ 21/* Contributed by Andrew Choi (akochoi@mac.com). */
22 22
23#include <config.h> 23#include <config.h>
24
25#include <stdio.h> 24#include <stdio.h>
26#include <math.h> 25#include <math.h>
27#include <limits.h>
28#include <errno.h>
29 26
30#include "lisp.h" 27#include "lisp.h"
31#include "charset.h"
32#include "macterm.h" 28#include "macterm.h"
33#include "frame.h" 29#include "frame.h"
34#include "window.h" 30#include "window.h"
35#include "buffer.h" 31#include "buffer.h"
36#include "dispextern.h"
37#include "fontset.h"
38#include "intervals.h" 32#include "intervals.h"
33#include "dispextern.h"
39#include "keyboard.h" 34#include "keyboard.h"
40#include "blockinput.h" 35#include "blockinput.h"
41#include "epaths.h" 36#include <epaths.h>
42#include "termhooks.h" 37#include "charset.h"
43#include "coding.h" 38#include "coding.h"
39#include "fontset.h"
44#include "systime.h" 40#include "systime.h"
41#include "termhooks.h"
42#include "atimer.h"
45 43
46/* #include "bitmaps/gray.xbm" */
47#define gray_width 2
48#define gray_height 2
49static unsigned char gray_bits[] = {
50 0x01, 0x02};
51
52/*#include <commdlg.h>
53#include <shellapi.h>*/
54#include <ctype.h> 44#include <ctype.h>
55#include <sys/types.h> 45#include <sys/types.h>
56#include <sys/stat.h> 46#include <sys/stat.h>
47#include <limits.h>
48#include <errno.h>
57#include <sys/param.h> 49#include <sys/param.h>
58 50
59#include <stdlib.h> 51extern void free_frame_menubar ();
60#include <string.h>
61
62/*extern void free_frame_menubar ();
63extern double atof ();
64extern int w32_console_toggle_lock_key (int vk_code, Lisp_Object new_state);
65extern int quit_char;*/
66
67extern char *lispy_function_keys[];
68
69/* The gray bitmap `bitmaps/gray'. This is done because macterm.c uses
70 it, and including `bitmaps/gray' more than once is a problem when
71 config.h defines `static' as an empty replacement string. */
72
73int gray_bitmap_width = gray_width;
74int gray_bitmap_height = gray_height;
75unsigned char *gray_bitmap_bits = gray_bits;
76 52
77/* Non-zero means we're allowed to display an hourglass cursor. */ 53/* Non-zero means we're allowed to display an hourglass cursor. */
78 54
@@ -109,46 +85,13 @@ Lisp_Object Vx_no_window_manager;
109 85
110Lisp_Object Vx_pixel_size_width_font_regexp; 86Lisp_Object Vx_pixel_size_width_font_regexp;
111 87
112/* Evaluate this expression to rebuild the section of syms_of_macfns
113 that initializes and staticpros the symbols declared below. Note
114 that Emacs 18 has a bug that keeps C-x C-e from being able to
115 evaluate this expression.
116
117(progn
118 ;; Accumulate a list of the symbols we want to initialize from the
119 ;; declarations at the top of the file.
120 (goto-char (point-min))
121 (search-forward "/\*&&& symbols declared here &&&*\/\n")
122 (let (symbol-list)
123 (while (looking-at "Lisp_Object \\(Q[a-z_]+\\)")
124 (setq symbol-list
125 (cons (buffer-substring (match-beginning 1) (match-end 1))
126 symbol-list))
127 (forward-line 1))
128 (setq symbol-list (nreverse symbol-list))
129 ;; Delete the section of syms_of_... where we initialize the symbols.
130 (search-forward "\n /\*&&& init symbols here &&&*\/\n")
131 (let ((start (point)))
132 (while (looking-at "^ Q")
133 (forward-line 2))
134 (kill-region start (point)))
135 ;; Write a new symbol initialization section.
136 (while symbol-list
137 (insert (format " %s = intern (\"" (car symbol-list)))
138 (let ((start (point)))
139 (insert (substring (car symbol-list) 1))
140 (subst-char-in-region start (point) ?_ ?-))
141 (insert (format "\");\n staticpro (&%s);\n" (car symbol-list)))
142 (setq symbol-list (cdr symbol-list)))))
143
144 */
145
146/*&&& symbols declared here &&&*/
147Lisp_Object Qnone; 88Lisp_Object Qnone;
148Lisp_Object Qsuppress_icon; 89Lisp_Object Qsuppress_icon;
149Lisp_Object Qundefined_color; 90Lisp_Object Qundefined_color;
150Lisp_Object Qcancel_timer; 91Lisp_Object Qcancel_timer;
151 92
93/* In dispnew.c */
94
152extern Lisp_Object Vwindow_system_version; 95extern Lisp_Object Vwindow_system_version;
153 96
154#if 0 /* Use xstricmp instead. */ 97#if 0 /* Use xstricmp instead. */
@@ -243,40 +186,11 @@ check_x_display_info (frame)
243 186
244 return dpyinfo; 187 return dpyinfo;
245} 188}
246
247/* Return the Emacs frame-object corresponding to a mac window.
248 It could be the frame's main window or an icon window. */
249
250/* This function can be called during GC, so use GC_xxx type test macros. */
251
252struct frame *
253x_window_to_frame (dpyinfo, wdesc)
254 struct mac_display_info *dpyinfo;
255 WindowPtr wdesc;
256{
257 Lisp_Object tail, frame;
258 struct frame *f;
259
260 for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
261 {
262 frame = XCAR (tail);
263 if (!GC_FRAMEP (frame))
264 continue;
265 f = XFRAME (frame);
266 if (!FRAME_W32_P (f) || FRAME_MAC_DISPLAY_INFO (f) != dpyinfo)
267 continue;
268 /*if (f->output_data.w32->hourglass_window == wdesc)
269 return f;*/
270
271 /* MAC_TODO: Check tooltips when supported. */
272 if (FRAME_MAC_WINDOW (f) == wdesc)
273 return f;
274 }
275 return 0;
276}
277 189
278 190
191
279static Lisp_Object unwind_create_frame P_ ((Lisp_Object)); 192static Lisp_Object unwind_create_frame P_ ((Lisp_Object));
193static Lisp_Object unwind_create_tip_frame P_ ((Lisp_Object));
280 194
281void x_set_foreground_color P_ ((struct frame *, Lisp_Object, Lisp_Object)); 195void x_set_foreground_color P_ ((struct frame *, Lisp_Object, Lisp_Object));
282void x_set_background_color P_ ((struct frame *, Lisp_Object, Lisp_Object)); 196void x_set_background_color P_ ((struct frame *, Lisp_Object, Lisp_Object));
@@ -302,6 +216,8 @@ static Lisp_Object x_default_scroll_bar_color_parameter P_ ((struct frame *,
302 216
303extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *)); 217extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *));
304 218
219
220
305/* Store the screen positions of frame F into XPTR and YPTR. 221/* Store the screen positions of frame F into XPTR and YPTR.
306 These are the positions of the containing window manager window, 222 These are the positions of the containing window manager window,
307 not Emacs's own window. */ 223 not Emacs's own window. */
@@ -1570,9 +1486,10 @@ x_set_cursor_color (f, arg, oldval)
1570 { 1486 {
1571 BLOCK_INPUT; 1487 BLOCK_INPUT;
1572 /* Update frame's cursor_gc. */ 1488 /* Update frame's cursor_gc. */
1573 f->output_data.mac->cursor_gc->foreground = fore_pixel; 1489 XSetBackground (FRAME_MAC_DISPLAY (f),
1574 f->output_data.mac->cursor_gc->background = pixel; 1490 f->output_data.mac->cursor_gc, pixel);
1575 1491 XSetForeground (FRAME_MAC_DISPLAY (f),
1492 f->output_data.mac->cursor_gc, fore_pixel);
1576 UNBLOCK_INPUT; 1493 UNBLOCK_INPUT;
1577 1494
1578 if (FRAME_VISIBLE_P (f)) 1495 if (FRAME_VISIBLE_P (f))
@@ -1833,8 +1750,49 @@ x_set_tool_bar_lines (f, value, oldval)
1833} 1750}
1834 1751
1835 1752
1753
1754/* Set the Mac window title to NAME for frame F. */
1755
1756static void
1757x_set_name_internal (f, name)
1758 FRAME_PTR f;
1759 Lisp_Object name;
1760{
1761 if (FRAME_MAC_WINDOW (f))
1762 {
1763 if (STRING_MULTIBYTE (name))
1764#if TARGET_API_MAC_CARBON
1765 name = ENCODE_UTF_8 (name);
1766#else
1767 name = ENCODE_SYSTEM (name);
1768#endif
1769
1770 BLOCK_INPUT;
1771
1772 {
1773#if TARGET_API_MAC_CARBON
1774 CFStringRef windowTitle =
1775 cfstring_create_with_utf8_cstring (SDATA (name));
1776
1777 SetWindowTitleWithCFString (FRAME_MAC_WINDOW (f), windowTitle);
1778 CFRelease (windowTitle);
1779#else
1780 Str255 windowTitle;
1781 if (strlen (SDATA (name)) < 255)
1782 {
1783 strcpy (windowTitle, SDATA (name));
1784 c2pstr (windowTitle);
1785 SetWTitle (FRAME_MAC_WINDOW (f), windowTitle);
1786 }
1787#endif
1788 }
1789
1790 UNBLOCK_INPUT;
1791 }
1792}
1793
1836/* Change the name of frame F to NAME. If NAME is nil, set F's name to 1794/* Change the name of frame F to NAME. If NAME is nil, set F's name to
1837 w32_id_name. 1795 mac_id_name.
1838 1796
1839 If EXPLICIT is non-zero, that indicates that lisp code is setting the 1797 If EXPLICIT is non-zero, that indicates that lisp code is setting the
1840 name; if NAME is a string, set F's name to NAME and set 1798 name; if NAME is a string, set F's name to NAME and set
@@ -1864,7 +1822,7 @@ x_set_name (f, name, explicit)
1864 else if (f->explicit_name) 1822 else if (f->explicit_name)
1865 return; 1823 return;
1866 1824
1867 /* If NAME is nil, set the name to the w32_id_name. */ 1825 /* If NAME is nil, set the name to the mac_id_name. */
1868 if (NILP (name)) 1826 if (NILP (name))
1869 { 1827 {
1870 /* Check for no change needed in this very common case 1828 /* Check for no change needed in this very common case
@@ -1888,37 +1846,7 @@ x_set_name (f, name, explicit)
1888 if (! NILP (f->title)) 1846 if (! NILP (f->title))
1889 name = f->title; 1847 name = f->title;
1890 1848
1891 if (FRAME_MAC_WINDOW (f)) 1849 x_set_name_internal (f, name);
1892 {
1893 if (STRING_MULTIBYTE (name))
1894#if TARGET_API_MAC_CARBON
1895 name = ENCODE_UTF_8 (name);
1896#else
1897 name = ENCODE_SYSTEM (name);
1898#endif
1899
1900 BLOCK_INPUT;
1901
1902 {
1903#if TARGET_API_MAC_CARBON
1904 CFStringRef windowTitle =
1905 cfstring_create_with_utf8_cstring (SDATA (name));
1906
1907 SetWindowTitleWithCFString (FRAME_MAC_WINDOW (f), windowTitle);
1908 CFRelease (windowTitle);
1909#else
1910 Str255 windowTitle;
1911 if (strlen (SDATA (name)) < 255)
1912 {
1913 strcpy (windowTitle, SDATA (name));
1914 c2pstr (windowTitle);
1915 SetWTitle (FRAME_MAC_WINDOW (f), windowTitle);
1916 }
1917#endif
1918 }
1919
1920 UNBLOCK_INPUT;
1921 }
1922} 1850}
1923 1851
1924/* This function should be called when the user's lisp code has 1852/* This function should be called when the user's lisp code has
@@ -1969,38 +1897,10 @@ x_set_title (f, name, old_name)
1969 1897
1970 if (NILP (name)) 1898 if (NILP (name))
1971 name = f->name; 1899 name = f->name;
1900 else
1901 CHECK_STRING (name);
1972 1902
1973 if (FRAME_MAC_WINDOW (f)) 1903 x_set_name_internal (f, name);
1974 {
1975 if (STRING_MULTIBYTE (name))
1976#if TARGET_API_MAC_CARBON
1977 name = ENCODE_UTF_8 (name);
1978#else
1979 name = ENCODE_SYSTEM (name);
1980#endif
1981
1982 BLOCK_INPUT;
1983
1984 {
1985#if TARGET_API_MAC_CARBON
1986 CFStringRef windowTitle =
1987 cfstring_create_with_utf8_cstring (SDATA (name));
1988
1989 SetWindowTitleWithCFString (FRAME_MAC_WINDOW (f), windowTitle);
1990 CFRelease (windowTitle);
1991#else
1992 Str255 windowTitle;
1993 if (strlen (SDATA (name)) < 255)
1994 {
1995 strcpy (windowTitle, SDATA (name));
1996 c2pstr (windowTitle);
1997 SetWTitle (FRAME_MAC_WINDOW (f), windowTitle);
1998 }
1999#endif
2000 }
2001
2002 UNBLOCK_INPUT;
2003 }
2004} 1904}
2005 1905
2006void 1906void
@@ -2469,7 +2369,7 @@ unwind_create_frame (frame)
2469 2369
2470DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, 2370DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame,
2471 1, 1, 0, 2371 1, 1, 0,
2472 doc: /* Make a new window, which is called a \"frame\" in Emacs terms. 2372 doc: /* Make a new window, which is called a "frame" in Emacs terms.
2473Returns an Emacs frame object. 2373Returns an Emacs frame object.
2474ALIST is an alist of frame parameters. 2374ALIST is an alist of frame parameters.
2475If the parameters specify that the frame should not have a minibuffer, 2375If the parameters specify that the frame should not have a minibuffer,
@@ -2478,7 +2378,7 @@ then `default-minibuffer-frame' must be a frame whose minibuffer can
2478be shared by the new frame. 2378be shared by the new frame.
2479 2379
2480This function is an internal primitive--use `make-frame' instead. */) 2380This function is an internal primitive--use `make-frame' instead. */)
2481 (parms) 2381 (parms)
2482 Lisp_Object parms; 2382 Lisp_Object parms;
2483{ 2383{
2484 struct frame *f; 2384 struct frame *f;
@@ -2803,7 +2703,7 @@ x_get_focus_frame (frame)
2803 2703
2804DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0, 2704DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
2805 doc: /* Internal function called by `color-defined-p', which see. */) 2705 doc: /* Internal function called by `color-defined-p', which see. */)
2806 (color, frame) 2706 (color, frame)
2807 Lisp_Object color, frame; 2707 Lisp_Object color, frame;
2808{ 2708{
2809 XColor foo; 2709 XColor foo;
@@ -2819,7 +2719,7 @@ DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
2819 2719
2820DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0, 2720DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0,
2821 doc: /* Internal function called by `color-values', which see. */) 2721 doc: /* Internal function called by `color-values', which see. */)
2822 (color, frame) 2722 (color, frame)
2823 Lisp_Object color, frame; 2723 Lisp_Object color, frame;
2824{ 2724{
2825 XColor foo; 2725 XColor foo;
@@ -2842,7 +2742,7 @@ DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0,
2842 2742
2843DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0, 2743DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0,
2844 doc: /* Internal function called by `display-color-p', which see. */) 2744 doc: /* Internal function called by `display-color-p', which see. */)
2845 (display) 2745 (display)
2846 Lisp_Object display; 2746 Lisp_Object display;
2847{ 2747{
2848 struct mac_display_info *dpyinfo = check_x_display_info (display); 2748 struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2855,12 +2755,12 @@ DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0,
2855 2755
2856DEFUN ("x-display-grayscale-p", Fx_display_grayscale_p, Sx_display_grayscale_p, 2756DEFUN ("x-display-grayscale-p", Fx_display_grayscale_p, Sx_display_grayscale_p,
2857 0, 1, 0, 2757 0, 1, 0,
2858 doc: /* Return t if the X display supports shades of gray. 2758 doc: /* Return t if DISPLAY supports shades of gray.
2859Note that color displays do support shades of gray. 2759Note that color displays do support shades of gray.
2860The optional argument DISPLAY specifies which display to ask about. 2760The optional argument DISPLAY specifies which display to ask about.
2861DISPLAY should be either a frame or a display name (a string). 2761DISPLAY should be either a frame or a display name (a string).
2862If omitted or nil, that stands for the selected frame's display. */) 2762If omitted or nil, that stands for the selected frame's display. */)
2863 (display) 2763 (display)
2864 Lisp_Object display; 2764 Lisp_Object display;
2865{ 2765{
2866 struct mac_display_info *dpyinfo = check_x_display_info (display); 2766 struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2873,11 +2773,11 @@ If omitted or nil, that stands for the selected frame's display. */)
2873 2773
2874DEFUN ("x-display-pixel-width", Fx_display_pixel_width, Sx_display_pixel_width, 2774DEFUN ("x-display-pixel-width", Fx_display_pixel_width, Sx_display_pixel_width,
2875 0, 1, 0, 2775 0, 1, 0,
2876 doc: /* Returns the width in pixels of the X display DISPLAY. 2776 doc: /* Returns the width in pixels of DISPLAY.
2877The optional argument DISPLAY specifies which display to ask about. 2777The optional argument DISPLAY specifies which display to ask about.
2878DISPLAY should be either a frame or a display name (a string). 2778DISPLAY should be either a frame or a display name (a string).
2879If omitted or nil, that stands for the selected frame's display. */) 2779If omitted or nil, that stands for the selected frame's display. */)
2880 (display) 2780 (display)
2881 Lisp_Object display; 2781 Lisp_Object display;
2882{ 2782{
2883 struct mac_display_info *dpyinfo = check_x_display_info (display); 2783 struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2887,11 +2787,11 @@ If omitted or nil, that stands for the selected frame's display. */)
2887 2787
2888DEFUN ("x-display-pixel-height", Fx_display_pixel_height, 2788DEFUN ("x-display-pixel-height", Fx_display_pixel_height,
2889 Sx_display_pixel_height, 0, 1, 0, 2789 Sx_display_pixel_height, 0, 1, 0,
2890 doc: /* Returns the height in pixels of the X display DISPLAY. 2790 doc: /* Returns the height in pixels of DISPLAY.
2891The optional argument DISPLAY specifies which display to ask about. 2791The optional argument DISPLAY specifies which display to ask about.
2892DISPLAY should be either a frame or a display name (a string). 2792DISPLAY should be either a frame or a display name (a string).
2893If omitted or nil, that stands for the selected frame's display. */) 2793If omitted or nil, that stands for the selected frame's display. */)
2894 (display) 2794 (display)
2895 Lisp_Object display; 2795 Lisp_Object display;
2896{ 2796{
2897 struct mac_display_info *dpyinfo = check_x_display_info (display); 2797 struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2901,11 +2801,11 @@ If omitted or nil, that stands for the selected frame's display. */)
2901 2801
2902DEFUN ("x-display-planes", Fx_display_planes, Sx_display_planes, 2802DEFUN ("x-display-planes", Fx_display_planes, Sx_display_planes,
2903 0, 1, 0, 2803 0, 1, 0,
2904 doc: /* Returns the number of bitplanes of the display DISPLAY. 2804 doc: /* Returns the number of bitplanes of DISPLAY.
2905The optional argument DISPLAY specifies which display to ask about. 2805The optional argument DISPLAY specifies which display to ask about.
2906DISPLAY should be either a frame or a display name (a string). 2806DISPLAY should be either a frame or a display name (a string).
2907If omitted or nil, that stands for the selected frame's display. */) 2807If omitted or nil, that stands for the selected frame's display. */)
2908 (display) 2808 (display)
2909 Lisp_Object display; 2809 Lisp_Object display;
2910{ 2810{
2911 struct mac_display_info *dpyinfo = check_x_display_info (display); 2811 struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2915,11 +2815,11 @@ If omitted or nil, that stands for the selected frame's display. */)
2915 2815
2916DEFUN ("x-display-color-cells", Fx_display_color_cells, Sx_display_color_cells, 2816DEFUN ("x-display-color-cells", Fx_display_color_cells, Sx_display_color_cells,
2917 0, 1, 0, 2817 0, 1, 0,
2918 doc: /* Returns the number of color cells of the display DISPLAY. 2818 doc: /* Returns the number of color cells of DISPLAY.
2919The optional argument DISPLAY specifies which display to ask about. 2819The optional argument DISPLAY specifies which display to ask about.
2920DISPLAY should be either a frame or a display name (a string). 2820DISPLAY should be either a frame or a display name (a string).
2921If omitted or nil, that stands for the selected frame's display. */) 2821If omitted or nil, that stands for the selected frame's display. */)
2922 (display) 2822 (display)
2923 Lisp_Object display; 2823 Lisp_Object display;
2924{ 2824{
2925 struct mac_display_info *dpyinfo = check_x_display_info (display); 2825 struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2931,11 +2831,11 @@ If omitted or nil, that stands for the selected frame's display. */)
2931DEFUN ("x-server-max-request-size", Fx_server_max_request_size, 2831DEFUN ("x-server-max-request-size", Fx_server_max_request_size,
2932 Sx_server_max_request_size, 2832 Sx_server_max_request_size,
2933 0, 1, 0, 2833 0, 1, 0,
2934 doc: /* Returns the maximum request size of the server of display DISPLAY. 2834 doc: /* Returns the maximum request size of the server of DISPLAY.
2935The optional argument DISPLAY specifies which display to ask about. 2835The optional argument DISPLAY specifies which display to ask about.
2936DISPLAY should be either a frame or a display name (a string). 2836DISPLAY should be either a frame or a display name (a string).
2937If omitted or nil, that stands for the selected frame's display. */) 2837If omitted or nil, that stands for the selected frame's display. */)
2938 (display) 2838 (display)
2939 Lisp_Object display; 2839 Lisp_Object display;
2940{ 2840{
2941 struct mac_display_info *dpyinfo = check_x_display_info (display); 2841 struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2944,18 +2844,18 @@ If omitted or nil, that stands for the selected frame's display. */)
2944} 2844}
2945 2845
2946DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0, 2846DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
2947 doc: /* Returns the vendor ID string of the Mac OS system (Apple). 2847 doc: /* Returns the "vendor ID" string of the Mac OS system (Apple).
2948The optional argument DISPLAY specifies which display to ask about. 2848The optional argument DISPLAY specifies which display to ask about.
2949DISPLAY should be either a frame or a display name (a string). 2849DISPLAY should be either a frame or a display name (a string).
2950If omitted or nil, that stands for the selected frame's display. */) 2850If omitted or nil, that stands for the selected frame's display. */)
2951 (display) 2851 (display)
2952 Lisp_Object display; 2852 Lisp_Object display;
2953{ 2853{
2954 return build_string ("Apple Computers"); 2854 return build_string ("Apple Computers");
2955} 2855}
2956 2856
2957DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0, 2857DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0,
2958 doc: /* Returns the version numbers of the server of display DISPLAY. 2858 doc: /* Returns the version numbers of the Mac OS system.
2959The value is a list of three integers: the major and minor 2859The value is a list of three integers: the major and minor
2960version numbers, and the vendor-specific release 2860version numbers, and the vendor-specific release
2961number. See also the function `x-server-vendor'. 2861number. See also the function `x-server-vendor'.
@@ -2963,7 +2863,7 @@ number. See also the function `x-server-vendor'.
2963The optional argument DISPLAY specifies which display to ask about. 2863The optional argument DISPLAY specifies which display to ask about.
2964DISPLAY should be either a frame or a display name (a string). 2864DISPLAY should be either a frame or a display name (a string).
2965If omitted or nil, that stands for the selected frame's display. */) 2865If omitted or nil, that stands for the selected frame's display. */)
2966 (display) 2866 (display)
2967 Lisp_Object display; 2867 Lisp_Object display;
2968{ 2868{
2969 int mac_major_version; 2869 int mac_major_version;
@@ -2988,22 +2888,22 @@ If omitted or nil, that stands for the selected frame's display. */)
2988} 2888}
2989 2889
2990DEFUN ("x-display-screens", Fx_display_screens, Sx_display_screens, 0, 1, 0, 2890DEFUN ("x-display-screens", Fx_display_screens, Sx_display_screens, 0, 1, 0,
2991 doc: /* Return the number of screens on the server of display DISPLAY. 2891 doc: /* Return the number of screens on the server of DISPLAY.
2992The optional argument DISPLAY specifies which display to ask about. 2892The optional argument DISPLAY specifies which display to ask about.
2993DISPLAY should be either a frame or a display name (a string). 2893DISPLAY should be either a frame or a display name (a string).
2994If omitted or nil, that stands for the selected frame's display. */) 2894If omitted or nil, that stands for the selected frame's display. */)
2995 (display) 2895 (display)
2996 Lisp_Object display; 2896 Lisp_Object display;
2997{ 2897{
2998 return make_number (1); 2898 return make_number (1);
2999} 2899}
3000 2900
3001DEFUN ("x-display-mm-height", Fx_display_mm_height, Sx_display_mm_height, 0, 1, 0, 2901DEFUN ("x-display-mm-height", Fx_display_mm_height, Sx_display_mm_height, 0, 1, 0,
3002 doc: /* Return the height in millimeters of the X display DISPLAY. 2902 doc: /* Return the height in millimeters of DISPLAY.
3003The optional argument DISPLAY specifies which display to ask about. 2903The optional argument DISPLAY specifies which display to ask about.
3004DISPLAY should be either a frame or a display name (a string). 2904DISPLAY should be either a frame or a display name (a string).
3005If omitted or nil, that stands for the selected frame's display. */) 2905If omitted or nil, that stands for the selected frame's display. */)
3006 (display) 2906 (display)
3007 Lisp_Object display; 2907 Lisp_Object display;
3008{ 2908{
3009 /* MAC_TODO: this is an approximation, and only of the main display */ 2909 /* MAC_TODO: this is an approximation, and only of the main display */
@@ -3014,11 +2914,11 @@ If omitted or nil, that stands for the selected frame's display. */)
3014} 2914}
3015 2915
3016DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0, 2916DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0,
3017 doc: /* Return the width in millimeters of the X display DISPLAY. 2917 doc: /* Return the width in millimeters of DISPLAY.
3018The optional argument DISPLAY specifies which display to ask about. 2918The optional argument DISPLAY specifies which display to ask about.
3019DISPLAY should be either a frame or a display name (a string). 2919DISPLAY should be either a frame or a display name (a string).
3020If omitted or nil, that stands for the selected frame's display. */) 2920If omitted or nil, that stands for the selected frame's display. */)
3021 (display) 2921 (display)
3022 Lisp_Object display; 2922 Lisp_Object display;
3023{ 2923{
3024 /* MAC_TODO: this is an approximation, and only of the main display */ 2924 /* MAC_TODO: this is an approximation, and only of the main display */
@@ -3030,12 +2930,12 @@ If omitted or nil, that stands for the selected frame's display. */)
3030 2930
3031DEFUN ("x-display-backing-store", Fx_display_backing_store, 2931DEFUN ("x-display-backing-store", Fx_display_backing_store,
3032 Sx_display_backing_store, 0, 1, 0, 2932 Sx_display_backing_store, 0, 1, 0,
3033 doc: /* Returns an indication of whether display DISPLAY does backing store. 2933 doc: /* Returns an indication of whether DISPLAY does backing store.
3034The value may be `always', `when-mapped', or `not-useful'. 2934The value may be `always', `when-mapped', or `not-useful'.
3035The optional argument DISPLAY specifies which display to ask about. 2935The optional argument DISPLAY specifies which display to ask about.
3036DISPLAY should be either a frame or a display name (a string). 2936DISPLAY should be either a frame or a display name (a string).
3037If omitted or nil, that stands for the selected frame's display. */) 2937If omitted or nil, that stands for the selected frame's display. */)
3038 (display) 2938 (display)
3039 Lisp_Object display; 2939 Lisp_Object display;
3040{ 2940{
3041 return intern ("not-useful"); 2941 return intern ("not-useful");
@@ -3043,14 +2943,14 @@ If omitted or nil, that stands for the selected frame's display. */)
3043 2943
3044DEFUN ("x-display-visual-class", Fx_display_visual_class, 2944DEFUN ("x-display-visual-class", Fx_display_visual_class,
3045 Sx_display_visual_class, 0, 1, 0, 2945 Sx_display_visual_class, 0, 1, 0,
3046 doc: /* Returns the visual class of the display DISPLAY. 2946 doc: /* Returns the visual class of DISPLAY.
3047The value is one of the symbols `static-gray', `gray-scale', 2947The value is one of the symbols `static-gray', `gray-scale',
3048`static-color', `pseudo-color', `true-color', or `direct-color'. 2948`static-color', `pseudo-color', `true-color', or `direct-color'.
3049 2949
3050The optional argument DISPLAY specifies which display to ask about. 2950The optional argument DISPLAY specifies which display to ask about.
3051DISPLAY should be either a frame or a display name (a string). 2951DISPLAY should be either a frame or a display name (a string).
3052If omitted or nil, that stands for the selected frame's display. */) 2952If omitted or nil, that stands for the selected frame's display. */)
3053 (display) 2953 (display)
3054 Lisp_Object display; 2954 Lisp_Object display;
3055{ 2955{
3056 struct mac_display_info *dpyinfo = check_x_display_info (display); 2956 struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -3074,11 +2974,11 @@ If omitted or nil, that stands for the selected frame's display. */)
3074 2974
3075DEFUN ("x-display-save-under", Fx_display_save_under, 2975DEFUN ("x-display-save-under", Fx_display_save_under,
3076 Sx_display_save_under, 0, 1, 0, 2976 Sx_display_save_under, 0, 1, 0,
3077 doc: /* Returns t if the display DISPLAY supports the save-under feature. 2977 doc: /* Returns t if DISPLAY supports the save-under feature.
3078The optional argument DISPLAY specifies which display to ask about. 2978The optional argument DISPLAY specifies which display to ask about.
3079DISPLAY should be either a frame or a display name (a string). 2979DISPLAY should be either a frame or a display name (a string).
3080If omitted or nil, that stands for the selected frame's display. */) 2980If omitted or nil, that stands for the selected frame's display. */)
3081 (display) 2981 (display)
3082 Lisp_Object display; 2982 Lisp_Object display;
3083{ 2983{
3084 return Qnil; 2984 return Qnil;
@@ -3168,7 +3068,7 @@ DISPLAY is the name of the display to connect to.
3168Optional second arg XRM-STRING is a string of resources in xrdb format. 3068Optional second arg XRM-STRING is a string of resources in xrdb format.
3169If the optional third arg MUST-SUCCEED is non-nil, 3069If the optional third arg MUST-SUCCEED is non-nil,
3170terminate Emacs if we can't open the connection. */) 3070terminate Emacs if we can't open the connection. */)
3171 (display, xrm_string, must_succeed) 3071 (display, xrm_string, must_succeed)
3172 Lisp_Object display, xrm_string, must_succeed; 3072 Lisp_Object display, xrm_string, must_succeed;
3173{ 3073{
3174 unsigned char *xrm_option; 3074 unsigned char *xrm_option;
@@ -3213,8 +3113,8 @@ DEFUN ("x-close-connection", Fx_close_connection,
3213 doc: /* Close the connection to DISPLAY's server. 3113 doc: /* Close the connection to DISPLAY's server.
3214For DISPLAY, specify either a frame or a display name (a string). 3114For DISPLAY, specify either a frame or a display name (a string).
3215If DISPLAY is nil, that stands for the selected frame's display. */) 3115If DISPLAY is nil, that stands for the selected frame's display. */)
3216 (display) 3116 (display)
3217 Lisp_Object display; 3117 Lisp_Object display;
3218{ 3118{
3219 struct mac_display_info *dpyinfo = check_x_display_info (display); 3119 struct mac_display_info *dpyinfo = check_x_display_info (display);
3220 int i; 3120 int i;
@@ -3240,7 +3140,7 @@ If DISPLAY is nil, that stands for the selected frame's display. */)
3240 3140
3241DEFUN ("x-display-list", Fx_display_list, Sx_display_list, 0, 0, 0, 3141DEFUN ("x-display-list", Fx_display_list, Sx_display_list, 0, 0, 0,
3242 doc: /* Return the list of display names that Emacs has connections to. */) 3142 doc: /* Return the list of display names that Emacs has connections to. */)
3243 () 3143 ()
3244{ 3144{
3245 Lisp_Object tail, result; 3145 Lisp_Object tail, result;
3246 3146
@@ -3252,13 +3152,8 @@ DEFUN ("x-display-list", Fx_display_list, Sx_display_list, 0, 0, 0,
3252} 3152}
3253 3153
3254DEFUN ("x-synchronize", Fx_synchronize, Sx_synchronize, 1, 2, 0, 3154DEFUN ("x-synchronize", Fx_synchronize, Sx_synchronize, 1, 2, 0,
3255 doc: /* If ON is non-nil, report errors as soon as the erring request is made. 3155 doc: /* This is a noop on Mac OS systems. */)
3256If ON is nil, allow buffering of requests. 3156 (on, display)
3257This is a noop on Mac OS systems.
3258The optional second argument DISPLAY specifies which display to act on.
3259DISPLAY should be either a frame or a display name (a string).
3260If DISPLAY is omitted or nil, that stands for the selected frame's display. */)
3261 (on, display)
3262 Lisp_Object display, on; 3157 Lisp_Object display, on;
3263{ 3158{
3264 return Qnil; 3159 return Qnil;
@@ -3317,7 +3212,7 @@ DEFUN ("x-delete-window-property", Fx_delete_window_property,
3317 Sx_delete_window_property, 1, 2, 0, 3212 Sx_delete_window_property, 1, 2, 0,
3318 doc: /* Remove window property PROP from X window of FRAME. 3213 doc: /* Remove window property PROP from X window of FRAME.
3319FRAME nil or omitted means use the selected frame. Value is PROP. */) 3214FRAME nil or omitted means use the selected frame. Value is PROP. */)
3320 (prop, frame) 3215 (prop, frame)
3321 Lisp_Object prop, frame; 3216 Lisp_Object prop, frame;
3322{ 3217{
3323#if 0 /* MAC_TODO : port window properties to Mac */ 3218#if 0 /* MAC_TODO : port window properties to Mac */
@@ -3345,7 +3240,7 @@ DEFUN ("x-window-property", Fx_window_property, Sx_window_property,
3345If FRAME is nil or omitted, use the selected frame. Value is nil 3240If FRAME is nil or omitted, use the selected frame. Value is nil
3346if FRAME hasn't a property with name PROP or if PROP has no string 3241if FRAME hasn't a property with name PROP or if PROP has no string
3347value. */) 3242value. */)
3348 (prop, frame) 3243 (prop, frame)
3349 Lisp_Object prop, frame; 3244 Lisp_Object prop, frame;
3350{ 3245{
3351#if 0 /* MAC_TODO : port window properties to Mac */ 3246#if 0 /* MAC_TODO : port window properties to Mac */
@@ -3947,7 +3842,7 @@ compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y)
3947 3842
3948DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0, 3843DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
3949 doc: /* Show STRING in a "tooltip" window on frame FRAME. 3844 doc: /* Show STRING in a "tooltip" window on frame FRAME.
3950A tooltip window is a small X window displaying a string. 3845A tooltip window is a small window displaying a string.
3951 3846
3952FRAME nil or omitted means use the selected frame. 3847FRAME nil or omitted means use the selected frame.
3953 3848
@@ -3957,7 +3852,7 @@ change the tooltip's appearance.
3957Automatically hide the tooltip after TIMEOUT seconds. TIMEOUT nil 3852Automatically hide the tooltip after TIMEOUT seconds. TIMEOUT nil
3958means use the default timeout of 5 seconds. 3853means use the default timeout of 5 seconds.
3959 3854
3960If the list of frame parameters PARAMS contains a `left' parameters, 3855If the list of frame parameters PARMS contains a `left' parameter,
3961the tooltip is displayed at that x-position. Otherwise it is 3856the tooltip is displayed at that x-position. Otherwise it is
3962displayed at the mouse position, with offset DX added (default is 5 if 3857displayed at the mouse position, with offset DX added (default is 5 if
3963DX isn't specified). Likewise for the y-position; if a `top' frame 3858DX isn't specified). Likewise for the y-position; if a `top' frame
@@ -4215,7 +4110,7 @@ Use a file selection dialog.
4215Select DEFAULT-FILENAME in the dialog's file selection box, if 4110Select DEFAULT-FILENAME in the dialog's file selection box, if
4216specified. Ensure that file exists if MUSTMATCH is non-nil. 4111specified. Ensure that file exists if MUSTMATCH is non-nil.
4217If ONLY-DIR-P is non-nil, the user can only select directories. */) 4112If ONLY-DIR-P is non-nil, the user can only select directories. */)
4218 (prompt, dir, default_filename, mustmatch, only_dir_p) 4113 (prompt, dir, default_filename, mustmatch, only_dir_p)
4219 Lisp_Object prompt, dir, default_filename, mustmatch, only_dir_p; 4114 Lisp_Object prompt, dir, default_filename, mustmatch, only_dir_p;
4220{ 4115{
4221 struct frame *f = SELECTED_FRAME (); 4116 struct frame *f = SELECTED_FRAME ();