]> code.delx.au - gnu-emacs/blobdiff - src/frame.h
Switch license to GPLv3 or later.
[gnu-emacs] / src / frame.h
index bd17832866ff036a739cbf49fa1e5c2d632ce2c6..1a827e786ea0296ce0e2fec171c0c3352fd5df2f 100644 (file)
@@ -1,12 +1,12 @@
 /* Define frame-object for GNU Emacs.
    Copyright (C) 1993, 1994, 1999, 2000, 2001, 2002, 2003, 2004,
-                 2005, 2006 Free Software Foundation, Inc.
+                 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,
@@ -72,7 +72,7 @@ enum text_cursor_kinds
 
 #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.  */
@@ -222,6 +222,7 @@ struct frame
   /* 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. */
@@ -471,6 +472,10 @@ struct frame
 
   /* 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
@@ -759,18 +764,11 @@ typedef struct frame *FRAME_PTR;
    (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_LIVE_FRAME(x)                            \
-     do {                                              \
-       if (! FRAMEP (x)                                        \
-          || ! FRAME_LIVE_P (XFRAME (x)))              \
-         x = wrong_type_argument (Qframe_live_p, (x)); \
-     } while (0)
+#define CHECK_FRAME(x) \
+  CHECK_TYPE (FRAMEP (x), Qframep, x)
+
+#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