typedef XImagePtr XImagePtr_or_DC;
#endif
+#ifdef HAVE_NS
+#include "nsgui.h"
+/* following typedef needed to accomodate the MSDOS port, believe it or not */
+typedef struct ns_display_info Display_Info;
+typedef Pixmap XImagePtr;
+typedef XImagePtr XImagePtr_or_DC;
+#endif
+
#ifndef NativeRectangle
#define NativeRectangle int
#endif
doesn't have a glyph in a font. */
unsigned glyph_not_available_p : 1;
-#define FACE_ID_BITS 21
+
+ /* Non-zero means don't display cursor here. */
+ unsigned avoid_cursor_p : 1;
+
+#define FACE_ID_BITS 20
/* Face of the glyph. This is a realized face ID,
an index in the face cache of the frame. */
enum lface_attribute_index
{
LFACE_FAMILY_INDEX = 1,
+ LFACE_FOUNDRY_INDEX,
LFACE_SWIDTH_INDEX,
LFACE_HEIGHT_INDEX,
LFACE_WEIGHT_INDEX,
/* If non-zero, use overstrike (to simulate bold-face). */
unsigned overstrike : 1;
+/* NOTE: this is not used yet, but eventually this impl should be done
+ similarly to overstrike */
+#ifdef HAVE_NS
+ /* If non-zero, use geometric rotation (to simulate italic). */
+ unsigned synth_ital : 1;
+#endif
+
/* Next and previous face in hash collision list of face cache. */
struct face *next, *prev;
LAST_PROP_IDX
};
+/* An enumerator for the method of wrapping long lines. */
+
+enum line_wrap_method
+{
+ TRUNCATE,
+ WORD_WRAP,
+ WINDOW_WRAP
+};
struct it_slice
{
this is 1 if we're doing an ellipsis. Otherwise meaningless. */
unsigned ellipsis_p : 1;
+ /* True means cursor shouldn't be displayed here. */
+ unsigned avoid_cursor_p : 1;
+
/* Display table in effect or null for none. */
struct Lisp_Char_Table *dp;
unsigned multibyte_p : 1;
unsigned string_from_display_prop_p : 1;
unsigned display_ellipsis_p : 1;
+ unsigned avoid_cursor_p : 1;
/* properties from display property that are reset by another display property. */
Lisp_Object space_width;
where the `^' can be replaced by a display table entry. */
unsigned ctl_arrow_p : 1;
- /* 1 means lines are truncated. */
- unsigned truncate_lines_p : 1;
+ enum line_wrap_method line_wrap;
/* Non-zero means that the current face has a box. */
unsigned face_box_p : 1;
void move_it_vertically_backward P_ ((struct it *, int));
void move_it_by_lines P_ ((struct it *, int, int));
void move_it_past_eol P_ ((struct it *));
+void move_it_in_display_line (struct it *it,
+ EMACS_INT to_charpos, int to_x,
+ enum move_operation_enum op);
int in_display_vector_p P_ ((struct it *));
int frame_mode_line_height P_ ((struct frame *));
void highlight_trailing_whitespace P_ ((struct frame *, struct glyph_row *));
extern int last_tool_bar_item;
extern Lisp_Object Vmouse_autoselect_window;
extern int unibyte_display_via_language_environment;
+extern EMACS_INT underline_minimum_offset;
extern void reseat_at_previous_visible_line_start P_ ((struct it *));
void prepare_face_for_display P_ ((struct frame *, struct face *));
int xstrcasecmp P_ ((const unsigned char *, const unsigned char *));
int lookup_face P_ ((struct frame *, Lisp_Object *));
-int lookup_non_ascii_face P_ ((struct frame *, int, struct face *));
int lookup_named_face P_ ((struct frame *, Lisp_Object, int));
+int lookup_basic_face P_ ((struct frame *, int));
int smaller_face P_ ((struct frame *, int, int));
int face_with_height P_ ((struct frame *, int, int));
int lookup_derived_face P_ ((struct frame *, Lisp_Object, int, int));
extern Lisp_Object Qforeground_color, Qbackground_color;
extern Lisp_Object Qframe_set_background_mode;
extern char unspecified_fg[], unspecified_bg[];
-extern Lisp_Object split_font_name_into_vector P_ ((Lisp_Object));
-extern Lisp_Object build_font_name_from_vector P_ ((Lisp_Object));
+
+extern Lisp_Object Vface_remapping_alist;
/* Defined in xfns.c */
extern void cancel_hourglass P_ ((void));
extern int hourglass_started P_ ((void));
extern int display_hourglass_p;
+extern int hourglass_shown_p;
+struct atimer; /* Defined in atimer.h. */
+/* If non-null, an asynchronous timer that, when it expires, displays
+ an hourglass cursor on all frames. */
+extern struct atimer *hourglass_atimer;
+
+/* Each GUI implements these. PENDING: move into RIF. */
+extern void show_hourglass P_ ((struct atimer *));
+extern void hide_hourglass P_ ((void));
/* Returns the background color of IMG, calculating one heuristically if
necessary. If non-zero, XIMG is an existing XImage object to use for