/* Define frame-object for GNU Emacs.
- Copyright (C) 1993, 1994, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1993-1994, 1999-2011 Free Software Foundation, Inc.
This file is part of GNU Emacs.
/* Nonzero means there is at least one garbaged frame. */
extern int frame_garbaged;
-/* Nonzero means FRAME_MESSAGE_BUF (selected_frame) is being used by
- print. */
-
-extern int message_buf_print;
-
-/* Nonzero means window system changes focus when moving the
- mouse. */
-
-extern int focus_follows_mouse;
-
\f
/* The structure representing a frame. */
struct frame
{
- EMACS_UINT size;
- struct Lisp_Vector *next;
+ struct vectorlike_header header;
/* All Lisp_Object components must come first.
That ensures they are all aligned normally. */
struct face_cache *face_cache;
/* Number of elements in `menu_bar_vector' that have meaningful data. */
- EMACS_INT menu_bar_items_used;
+ int menu_bar_items_used;
/* A buffer to hold the frame's name. We can't use the Lisp
string's pointer (`name', above) because it might get relocated. */
/* Size of this frame, excluding fringes, scroll bars etc.,
in units of canonical characters. */
- EMACS_INT text_lines, text_cols;
+ int text_lines, text_cols;
/* Total size of this frame (i.e. its native window), in units of
canonical characters. */
- EMACS_INT total_lines, total_cols;
+ int total_lines, total_cols;
/* New text height and width for pending size change.
0 if no change pending. */
#define FRAME_WINDOW_P(f) (0)
#endif
+/* Return a pointer to the structure holding information about the
+ region of text, if any, that is currently shown in mouse-face on
+ frame F. We need to define two versions because a TTY-only build
+ does not have FRAME_X_DISPLAY_INFO. */
+#ifdef HAVE_WINDOW_SYSTEM
+# define MOUSE_HL_INFO(F) \
+ (FRAME_WINDOW_P(F) \
+ ? &(FRAME_X_DISPLAY_INFO(F)->mouse_highlight) \
+ : &(((F)->output_data.tty->display_info)->mouse_highlight))
+#else
+# define MOUSE_HL_INFO(F) \
+ (&(((F)->output_data.tty->display_info)->mouse_highlight))
+#endif
+
/* Nonzero if frame F is still alive (not deleted). */
#define FRAME_LIVE_P(f) ((f)->terminal != 0)
extern struct frame *last_nonminibuf_frame;
+extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
extern struct frame *make_initial_frame (void);
-extern struct frame *make_terminal_frame (struct terminal *);
extern struct frame *make_frame (int);
#ifdef HAVE_WINDOW_SYSTEM
extern struct frame *make_minibuffer_frame (void);
struct kboard *,
Lisp_Object);
#endif /* HAVE_WINDOW_SYSTEM */
-extern int other_visible_frames (struct frame *);
extern void frame_make_pointer_invisible (void);
extern void frame_make_pointer_visible (void);
extern Lisp_Object delete_frame (Lisp_Object, Lisp_Object);
extern Lisp_Object Vframe_list;
-extern Lisp_Object Vdefault_frame_alist;
-
-extern Lisp_Object Vterminal_frame;
-
-extern Lisp_Object Vmouse_highlight;
\f
/* The currently selected frame. */
extern Lisp_Object Qauto_raise, Qauto_lower;
extern Lisp_Object Qborder_color, Qborder_width;
-extern Lisp_Object Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list;
+extern Lisp_Object Qbuffer_predicate;
extern Lisp_Object Qcursor_color, Qcursor_type;
extern Lisp_Object Qfont;
extern Lisp_Object Qbackground_color, Qforeground_color;
extern Lisp_Object Qx, Qw32, Qmac, Qpc, Qns;
extern Lisp_Object Qvisible;
extern Lisp_Object Qdisplay_type;
-extern Lisp_Object Qbackground_mode;
extern Lisp_Object Qx_resource_name;
extern Lisp_Object x_new_font (struct frame *, Lisp_Object, int);
-/* These are in frame.c */
-
-extern Lisp_Object Vx_resource_name;
-extern Lisp_Object Vx_resource_class;
-extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
-
extern Lisp_Object Qface_set_after_frame_default;
+#ifdef WINDOWSNT
extern void x_fullscreen_adjust (struct frame *f, int *, int *,
int *, int *);
+#endif
extern void x_set_frame_parameters (struct frame *, Lisp_Object);
-extern void x_report_frame_params (struct frame *, Lisp_Object *);
extern void x_set_fullscreen (struct frame *, Lisp_Object, Lisp_Object);
extern void x_set_line_spacing (struct frame *, Lisp_Object, Lisp_Object);
extern int x_figure_window_size (struct frame *, Lisp_Object, int);
-extern Lisp_Object Vframe_alpha_lower_limit;
extern void x_set_alpha (struct frame *, Lisp_Object, Lisp_Object);
extern void validate_x_resource_name (void);
-
+
extern Lisp_Object display_x_get_resource (Display_Info *,
Lisp_Object attribute,
Lisp_Object class,
Lisp_Object component,
Lisp_Object subclass);
+#if defined HAVE_X_WINDOWS && !defined USE_X_TOOLKIT
+extern char *x_get_resource_string (const char *, const char *);
+#endif
+
/* In xmenu.c */
extern void set_frame_menubar (FRAME_PTR, int, int);
#endif /* HAVE_WINDOW_SYSTEM */
#endif /* not EMACS_FRAME_H */
-
-/* arch-tag: 0df048ee-e6bf-4f48-bd56-e3cd055dd8c4
- (do not change this comment) */