Mercurial > hg > xemacs-beta
annotate src/console-x.h @ 4570:e6a7054a9c30
Add check-coding-systems-region, test it and others, fix some bugs.
tests/ChangeLog addition:
2008-12-28 Aidan Kehoe <kehoea@parhasard.net>
* automated/query-coding-tests.el:
Add tests for #'unencodable-char-position,
#'check-coding-systems-region, #'encode-coding-char. Remove some
debugging statements.
lisp/ChangeLog addition:
2008-12-28 Aidan Kehoe <kehoea@parhasard.net>
* coding.el (query-coding-region):
(query-coding-string):
Make these defsubsts, they're short enough and they're called
explicitly rarely enough that it make some sense. The alternative
would be compiler macros that avoid the binding of the arguments.
(unencodable-char-position):
Document where the docstring and API are from.
Correct a special case for zero--check-argument-type returns nil
when it succeeds, we can't usefully chain its result in an and
here.
(check-coding-systems-region): New. API taken from GNU; docstring
and implementation are independent.
(encode-coding-char):
Add an optional third argument, as used by recent GNU. Document
the origen of the docstring.
(default-query-coding-region): Add a short docstring to the
non-Mule implementation of this function.
* unicode.el:
Don't set the query-coding-function property for unicode coding
systems if we're on non-mule. Unintern
unicode-query-coding-region, unicode-query-coding-skip-chars-arg
in the same context.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 28 Dec 2008 22:51:14 +0000 |
parents | 726060ee587c |
children | b3ce27ca7647 19a72041c5ed |
rev | line source |
---|---|
428 | 1 /* Define X specific console, device, and frame object for XEmacs. |
2 Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. | |
3 Copyright (C) 1994, 1995 Board of Trustees, University of Illinois. | |
1318 | 4 Copyright (C) 1996, 2002, 2003 Ben Wing. |
428 | 5 |
6 This file is part of XEmacs. | |
7 | |
8 XEmacs is free software; you can redistribute it and/or modify it | |
9 under the terms of the GNU General Public License as published by the | |
10 Free Software Foundation; either version 2, or (at your option) any | |
11 later version. | |
12 | |
13 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
16 for more details. | |
17 | |
18 You should have received a copy of the GNU General Public License | |
19 along with XEmacs; see the file COPYING. If not, write to | |
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
21 Boston, MA 02111-1307, USA. */ | |
22 | |
23 /* Synched up with: Not in FSF. */ | |
24 | |
25 | |
26 /* Authorship: | |
27 | |
28 Ultimately based on FSF, then later on JWZ work for Lemacs. | |
29 Rewritten over time by Ben Wing and Chuck Thompson (original | |
30 multi-device work by Chuck Thompson). | |
31 */ | |
32 | |
440 | 33 #ifndef INCLUDED_console_x_h_ |
34 #define INCLUDED_console_x_h_ | |
428 | 35 |
36 #ifdef HAVE_X_WINDOWS | |
37 | |
38 #include "console.h" | |
2484 | 39 /* must come before Xutil.h, which is included indirectly from xintrinsic.h, |
40 to avoid breakage in keysym-parsing macros from X11R6, at least X.org as | |
41 of 2005-01-17, and probably XFree86 too from reports on c.e.x */ | |
42 #include <X11/keysym.h> | |
428 | 43 #include "xintrinsic.h" |
1346 | 44 #include "../lwlib/lwlib.h" |
428 | 45 |
46 #include <X11/cursorfont.h> | |
47 #include <X11/Xatom.h> | |
48 #include <X11/StringDefs.h> | |
49 | |
50 #ifdef HAVE_XPM | |
51 #include <X11/xpm.h> | |
52 #endif | |
53 | |
3094 | 54 #ifdef USE_XFT |
55 /* shut up GCC */ | |
56 #define face_index face_index_arg | |
57 #define glyph_index glyph_index_arg | |
58 #include <X11/Xft/Xft.h> | |
59 #undef glyph_index | |
60 #undef face_index | |
61 #endif | |
62 | |
428 | 63 /* R5 defines the XPointer type, but R4 doesn't. |
64 R4 also doesn't define a version number, but R5 does. */ | |
65 #if (XlibSpecificationRelease < 5) | |
66 # define XPointer char * | |
67 #endif | |
68 | |
1204 | 69 #ifdef __cplusplus |
70 #define X_CLASSFIELD c_class | |
71 #else | |
72 #define X_CLASSFIELD class | |
73 #endif | |
74 | |
428 | 75 /* Variables associated with the X display frame this emacs is using. */ |
76 extern XtAppContext Xt_app_con; | |
77 | |
78 extern Lisp_Object Vx_gc_pointer_shape; | |
79 extern Lisp_Object Vx_scrollbar_pointer_shape; | |
80 extern Lisp_Object Qx_error; | |
81 | |
82 /* Number of pixels below each line. */ | |
83 extern int x_interline_space; /* #### implement me */ | |
84 | |
458 | 85 extern Fixnum x_selection_timeout; |
428 | 86 |
87 struct frame *x_any_window_to_frame (struct device *d, Window); | |
88 struct frame *x_any_widget_or_parent_to_frame (struct device *d, | |
89 Widget widget); | |
90 struct frame *decode_x_frame (Lisp_Object); | |
91 struct frame *x_window_to_frame (struct device *d, Window); | |
92 struct device *get_device_from_display (Display *dpy); | |
93 struct device *decode_x_device (Lisp_Object); | |
94 | |
95 void x_handle_selection_notify (XSelectionEvent *event); | |
96 void x_handle_selection_request (XSelectionRequestEvent *event); | |
97 void x_handle_selection_clear (XSelectionClearEvent *event); | |
98 void x_handle_property_notify (XPropertyEvent *event); | |
99 | |
440 | 100 void Xatoms_of_select_x (struct device *d); |
428 | 101 void Xatoms_of_objects_x (struct device *d); |
102 | |
103 void x_wm_set_shell_iconic_p (Widget shell, int iconic_p); | |
104 void x_wm_set_cell_size (Widget wmshell, int cw, int ch); | |
105 void x_wm_set_variable_size (Widget wmshell, int width, int height); | |
106 | |
442 | 107 const char *x_event_name (int event_type); |
1204 | 108 int check_if_pending_expose_event (struct device *d); |
428 | 109 int x_error_handler (Display *disp, XErrorEvent *event); |
110 void expect_x_error (Display *dpy); | |
111 int x_error_occurred_p (Display *dpy); | |
112 int signal_if_x_error (Display *dpy, int resumable_p); | |
113 int x_IO_error_handler (Display *disp); | |
114 | |
1346 | 115 widget_value *xmalloc_widget_value (void); |
116 | |
117 LWLIB_ID new_lwlib_id (void); | |
118 | |
119 void gcpro_popup_callbacks (LWLIB_ID id); | |
120 void ungcpro_popup_callbacks (LWLIB_ID id); | |
121 int popup_handled_p (LWLIB_ID id); | |
122 void free_popup_widget_value_tree (widget_value *wv); | |
123 void popup_selection_callback (Widget widget, LWLIB_ID ignored_id, | |
124 XtPointer client_data); | |
125 Extbyte *add_accel_and_to_external (Lisp_Object string); | |
126 int button_item_to_widget_value (Lisp_Object gui_object_instance, | |
127 Lisp_Object gui_item, widget_value *wv, | |
128 int allow_text_field_p, int no_keys_p, | |
129 int menu_entry_p, int accel_p); | |
130 widget_value * gui_items_to_widget_values (Lisp_Object gui_object_instance, | |
131 Lisp_Object items, int accel_p); | |
132 Extbyte *menu_separator_style_and_to_external (const Ibyte *s); | |
133 Lisp_Object widget_value_unwind (Lisp_Object closure); | |
134 | |
428 | 135 void x_output_string (struct window *w, struct display_line *dl, |
867 | 136 Ichar_dynarr *buf, int xpos, int xoffset, |
428 | 137 int start_pixpos, int width, face_index findex, |
138 int cursor, int cursor_start, int cursor_width, | |
139 int cursor_height); | |
440 | 140 void x_output_x_pixmap (struct frame *f, Lisp_Image_Instance *p, |
428 | 141 int x, int y, int xoffset, int yoffset, |
142 int width, int height, | |
143 unsigned long fg, unsigned long bg, | |
144 GC override_gc); | |
145 void x_output_shadows (struct frame *f, int x, int y, int width, | |
146 int height, GC top_shadow_gc, | |
147 GC bottom_shadow_gc, GC background_gc, | |
148 int shadow_thickness, int edges); | |
149 void x_generate_shadow_pixels (struct frame *f, | |
150 unsigned long *top_shadow, | |
151 unsigned long *bottom_shadow, | |
152 unsigned long background, | |
153 unsigned long core_background); | |
154 | |
155 int x_initialize_frame_menubar (struct frame *f); | |
156 void x_init_modifier_mapping (struct device *d); | |
157 | |
593 | 158 int x_frame_window_state (struct frame *f); |
159 | |
428 | 160 #define X_ERROR_OCCURRED(dpy, body) \ |
161 (expect_x_error (dpy), body, x_error_occurred_p (dpy)) | |
162 | |
163 #define HANDLING_X_ERROR(dpy, body) \ | |
164 (expect_x_error (dpy), body, signal_if_x_error (dpy, 0)) | |
165 | |
166 void Initialize_Locale (void); | |
167 | |
168 #ifdef HAVE_XIM | |
169 | |
170 /* X Input Method `methods' */ | |
171 void XIM_init_device (struct device *d); | |
172 void XIM_init_frame (struct frame *f); | |
173 void XIM_SetSpotLocation (struct frame *f, int x, int y); | |
174 void XIM_SetGeometry (struct frame *f); | |
175 void XIM_focus_event (struct frame *f, int in_p); | |
176 | |
177 #ifdef XIM_XLIB | |
178 /* XtTypeConverter */ | |
179 Boolean EmacsXtCvtStringToXIMStyles ( | |
180 Display *dpy, | |
181 XrmValuePtr args, | |
182 Cardinal *num_args, | |
183 XrmValuePtr from, | |
184 XrmValuePtr to_in_out, | |
185 XtPointer *converter_data); | |
186 | |
187 /* XtDestructor */ | |
188 void EmacsFreeXIMStyles ( | |
189 XtAppContext app, | |
190 XrmValuePtr to, | |
191 XtPointer converter_data, | |
192 XrmValuePtr args, | |
193 Cardinal *num_args); | |
194 | |
195 #ifdef DEBUG_XEMACS | |
196 void describe_Window (Window win); | |
197 void describe_XFontSet (XFontSet font_set); | |
198 void describe_XIM (XIM im); | |
199 void describe_XIMStyle (XIMStyle style); | |
200 void describe_XIMStyles (XIMStyles *styles); | |
201 void describe_XIC (XIC ic); | |
202 void describe_event_mask (unsigned long mask); | |
4528
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
203 void describe_XRectangle (const char *name, XRectangle *rect); |
428 | 204 void describe_Status (Status status); |
205 #endif /* DEBUG_XEMACS */ | |
206 #endif /* XIM_XLIB */ | |
207 #endif /* HAVE_XIM */ | |
208 | |
771 | 209 extern Lisp_Object Qxintl; |
210 | |
428 | 211 extern int in_resource_setting; |
212 extern int in_specifier_change_function; | |
213 | |
214 extern Lisp_Object Vx_initial_argv_list; /* #### ugh! */ | |
215 | |
216 #endif /* HAVE_X_WINDOWS */ | |
440 | 217 |
218 #endif /* INCLUDED_console_x_h_ */ |