/* 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,
#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. */
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
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.
+/* 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)