/* Define frame-object for GNU Emacs.
- Copyright (C) 1993, 1994, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005, 2006, 2007 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 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
/* Don't multiply include: dispextern.h includes macterm.h which
includes frame.h some emacs source includes both dispextern.h and
#if !defined(HAVE_X_WINDOWS)
-#define PIX_TYPE int
+#define PIX_TYPE unsigned long
/* A (mostly empty) x_output structure definition for building Emacs
on Unix and GNU/Linux without X support. */
/* Margin at the top of the frame. Used to display the tool-bar. */
int tool_bar_lines;
+ int n_tool_bar_rows;
int n_tool_bar_items;
/* A buffer for decode_mode_line. */
/* Canonical X unit. Width of default font, in pixels. */
int column_width;
+ /* Widht of space glyph of default font, in pixels. */
+ int space_width;
+
/* Canonical Y unit. Height of a line, in pixels. */
int line_height;
/* Set to non-zero in change_frame_size when size of frame changed
Clear the frame in clear_garbaged_frames if set. */
unsigned resized_p : 1;
+
+ /* Set to non-zero in when we want for force a flush_display in
+ update_frame, usually after resizing the frame. */
+ unsigned force_flush_display_p : 1;
+
+ /* Set to non-zero if the default face for the frame has been
+ realized. Reset to zero whenever the default face changes.
+ Used to see the difference between a font change and face change. */
+ unsigned default_face_done_p : 1;
+
+ /* Set to non-zero if this frame has already been hscrolled during
+ current redisplay. */
+ unsigned already_hscrolled_p : 1;
+
+ /* Set to non-zero when current redisplay has updated frame. */
+ unsigned updated_p : 1;
+
+ /* Set to non-zero to minimize tool-bar height even when
+ auto-resize-tool-bar is set to grow-only. */
+ unsigned minimize_tool_bar_window_p : 1;
};
#ifdef MULTI_KBOARD
(f)->visible = (f)->async_visible, \
(f)->iconified = (f)->async_iconified)
-#define CHECK_FRAME(x) \
- do { \
- if (! FRAMEP (x)) \
- x = wrong_type_argument (Qframep, (x)); \
- } while (0)
+#define CHECK_FRAME(x) \
+ CHECK_TYPE (FRAMEP (x), Qframep, x)
-#define CHECK_LIVE_FRAME(x) \
- do { \
- if (! FRAMEP (x) \
- || ! FRAME_LIVE_P (XFRAME (x))) \
- x = wrong_type_argument (Qframe_live_p, (x)); \
- } while (0)
+#define CHECK_LIVE_FRAME(x) \
+ CHECK_TYPE (FRAMEP (x) && FRAME_LIVE_P (XFRAME (x)), Qframe_live_p, x)
/* FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a
`for' loop which iterates over the elements of Vframe_list. The
extern Lisp_Object Vterminal_frame;
extern Lisp_Object Vmouse_highlight;
-
-enum text_cursor_kinds get_specified_cursor_type P_ ((Lisp_Object, int *));
-enum text_cursor_kinds get_window_cursor_type P_ ((struct window *, int *, int *));
\f
/* The currently selected frame. */
Display-related Macros
***********************************************************************/
-/* Canonical y-unit on frame F.
+/* Canonical y-unit on frame F.
This value currently equals the line height of the frame (which is
the height of the default font of F). */
#define FRAME_LINE_HEIGHT(F) ((F)->line_height)
-/* Canonical x-unit on frame F.
- This value currently equals the width of the default font of F. */
+/* Canonical x-unit on frame F.
+ This value currently equals the average width of the default font of F. */
#define FRAME_COLUMN_WIDTH(F) ((F)->column_width)
+/* Space glyph width of the default font of frame F. */
+
+#define FRAME_SPACE_WIDTH(F) ((F)->space_width)
+
/* Pixel width of areas used to display truncation marks, continuation
marks, overlay arrows. This is 0 for terminal frames. */
FULLSCREEN_HEIGHT = 2,
FULLSCREEN_BOTH = 3,
FULLSCREEN_WAIT = 4,
- FULLSCREEN_MOVE_WAIT = 8,
};
#endif /* HAVE_WINDOW_SYSTEM */
#endif /* not EMACS_FRAME_H */
+
+/* arch-tag: 0df048ee-e6bf-4f48-bd56-e3cd055dd8c4
+ (do not change this comment) */