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
#define FRAME_FOREGROUND_PIXEL(f) ((f)->foreground_pixel)
#define FRAME_BACKGROUND_PIXEL(f) ((f)->background_pixel)
-struct display;
+struct device;
struct frame
{
Actually, we don't specify exactly what is stored here at all; the
scroll bar implementation code can use it to store anything it likes.
This field is marked by the garbage collector. It is here
- instead of in the `display' structure so that the garbage
+ instead of in the `device' structure so that the garbage
collector doesn't need to look inside the window-system-dependent
structure. */
Lisp_Object scroll_bars;
/* 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;
/* The output method says how the contents of this frame are
displayed. It could be using termcap, or using an X window.
- This must be the same as the display->type. */
+ This must be the same as the device->type. */
enum output_method output_method;
- /* The display that this frame uses. If this is NULL, then the
- frame is deleted. */
- struct display *display;
+ /* The display device that this frame uses. If this is NULL, then
+ the frame has been deleted. */
+ struct device *device;
- /* Display-dependent, frame-local auxiliary data used for displaying
+ /* Device-dependent, frame-local auxiliary data used for displaying
the contents. When the frame is deleted, this data is deleted as
well. */
union output_data
/* The extra width (in pixels) currently allotted for fringes. */
int left_fringe_width, right_fringe_width;
-#ifdef MULTI_KBOARD
- /* XXX Maybe this should be moved to struct display, too. */
- /* A pointer to the kboard structure associated with this frame.
- For termcap frames, it will be the same as
- display->display_info.tty->kboard.
- For X frames, it will be the same as
- display->display_info.x->kboard. */
- struct kboard *kboard;
-#endif
-
/* See FULLSCREEN_ enum below */
int want_fullscreen;
/* The baud rate that was used to calculate costs for this frame. */
int cost_calculation_baud_rate;
- /* Nonzero if the mouse has moved on this display
+ /* Nonzero if the mouse has moved on this display device
since the last time we checked. */
char mouse_moved;
};
#ifdef MULTI_KBOARD
-#define FRAME_KBOARD(f) ((f)->kboard)
+#define FRAME_KBOARD(f) ((f)->device->kboard)
#else
#define FRAME_KBOARD(f) (&the_only_kboard)
#endif
#endif
/* Nonzero if frame F is still alive (not deleted). */
-#define FRAME_LIVE_P(f) ((f)->display != 0)
+#define FRAME_LIVE_P(f) ((f)->device != 0)
/* Nonzero if frame F is a minibuffer-only frame. */
#define FRAME_MINIBUF_ONLY_P(f) \
extern Lisp_Object Qframep, Qframe_live_p;
extern Lisp_Object Qtty, Qtty_type;
-extern Lisp_Object Qdisplay_id, Qdisplay_live_p;
+extern Lisp_Object Qdevice, Qdisplay_live_p;
extern struct frame *last_nonminibuf_frame;
extern struct frame *make_initial_frame P_ ((void));
-extern struct frame *make_terminal_frame P_ ((struct display *));
+extern struct frame *make_terminal_frame P_ ((struct device *));
extern struct frame *make_frame P_ ((int));
#ifdef HAVE_WINDOW_SYSTEM
extern struct frame *make_minibuffer_frame P_ ((void));
#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. */
+ 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. */