/* Interface definitions for display code.
-Copyright (C) 1985, 1993-1994, 1997-2015 Free Software Foundation, Inc.
+Copyright (C) 1985, 1993-1994, 1997-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
IMAGE_GLYPH,
/* Glyph is a space of fractional width and/or height. */
- STRETCH_GLYPH
+ STRETCH_GLYPH,
+
+ /* Glyph is an external widget drawn by the GUI toolkit. */
+ XWIDGET_GLYPH
};
/* Image ID for image glyphs (type == IMAGE_GLYPH). */
int img_id;
+#ifdef HAVE_XWIDGETS
+ /* Xwidget reference (type == XWIDGET_GLYPH). */
+ struct xwidget *xwidget;
+#endif
+
/* Sub-structure for type == STRETCH_GLYPH. */
struct
{
/* Image, if any. */
struct image *img;
+ /* Xwidget. */
+ struct xwidget *xwidget;
+
/* Slice */
struct glyph_slice slice;
resolving weak and neutral types */
bidi_type_t type_after_wn; /* bidi type after overrides and Wn */
bidi_type_t orig_type; /* original bidi type, as found in the buffer */
- char resolved_level; /* final resolved level of this character */
- char isolate_level; /* count of isolate initiators unmatched by PDI */
+ signed char resolved_level; /* final resolved level of this character */
+ signed char isolate_level; /* count of isolate initiators unmatched by PDI */
ptrdiff_t invalid_levels; /* how many PDFs to ignore */
ptrdiff_t invalid_isolates; /* how many PDIs to ignore */
struct bidi_saved_info prev; /* info about previous character */
IT_TRUNCATION,
/* Continuation glyphs. See the comment for IT_TRUNCATION. */
- IT_CONTINUATION
+ IT_CONTINUATION,
+
+ /* Xwidget. */
+ IT_XWIDGET
};
GET_FROM_C_STRING,
GET_FROM_IMAGE,
GET_FROM_STRETCH,
+ GET_FROM_XWIDGET,
NUM_IT_METHODS
};
struct it_slice slice;
ptrdiff_t image_id;
} image;
- /* method == GET_FROM_COMPOSITION */
- struct {
- Lisp_Object object;
- } comp;
/* method == GET_FROM_STRETCH */
struct {
Lisp_Object object;
} stretch;
+ /* method == GET_FROM_XWIDGET */
+ struct {
+ Lisp_Object object;
+ } xwidget;
} u;
/* Current text and display positions. */
/* If what == IT_IMAGE, the id of the image to display. */
ptrdiff_t image_id;
+ /* If what == IT_XWIDGET. */
+ struct xwidget *xwidget;
+
/* Values from `slice' property. */
struct it_slice slice;
struct bidi_string_data *);
extern void produce_stretch_glyph (struct it *);
extern int merge_glyphless_glyph_face (struct it *);
+extern void forget_escape_and_glyphless_faces (void);
+
+extern void get_font_ascent_descent (struct font *, int *, int *);
#ifdef HAVE_WINDOW_SYSTEM
bool tabs_safe_p (int);
void init_baud_rate (int);
void init_sigio (int);
-void ignore_sigio (void);
/* Defined in xfaces.c. */