Merge from emacs-23
[bpt/emacs.git] / src / msdos.h
index b7c0456..9d4de5a 100644 (file)
@@ -1,6 +1,6 @@
 /* MS-DOS specific C utilities, interface.
    Copyright (C) 1993, 2001, 2002, 2003, 2004,
-                 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+                 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -22,8 +22,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <dpmi.h>
 
-int dos_ttraw ();
-int dos_ttcooked ();
+int dos_ttraw (struct tty_display_info *);
+int dos_ttcooked (void);
 int dos_get_saved_screen (char **, int *, int *);
 int dos_set_keyboard (int, int);
 void dos_set_window_size (int *, int *);
@@ -32,15 +32,14 @@ int getdefdir (int, char*);
 void unixtodos_filename (char *);
 void dostounix_filename (char *);
 char *rootrelativepath (char *);
-void init_environment ();
-void internal_terminal_init ();
-void ctrl_break_func (_go32_dpmi_registers *);
-void install_ctrl_break_check ();
+void init_environment (int, char **, int);
+void internal_terminal_init (void);
+void initialize_msdos_display (struct terminal *);
 
 extern int have_mouse;
-void mouse_init ();
-void mouse_on ();
-void mouse_off ();
+void mouse_init (void);
+void mouse_on (void);
+void mouse_off (void);
 void mouse_moveto (int, int);
 \f
 #ifndef HAVE_X_WINDOWS
@@ -54,56 +53,13 @@ typedef int XRectangle;
 #define PIX_TYPE unsigned long
 #define XDISPLAY
 
-/* A stripped version of struct x_display_info in xterm.h, which see.  */
-struct display_info
-{
-  /* These variables describe the range of text currently shown in its
-     mouse-face, together with the window they apply to.  As long as
-     the mouse stays within this range, we need not redraw anything on
-     its account.  Rows and columns are glyph matrix positions in
-     MOUSE_FACE_WINDOW.  */
-  int mouse_face_beg_row, mouse_face_beg_col;
-  int mouse_face_end_row, mouse_face_end_col;
-  int mouse_face_past_end;
-  Lisp_Object mouse_face_window;
-  int mouse_face_face_id;
-
-  /* 1 if a mouse motion event came and we didn't handle it right away because
-     gc was in progress.  */
-  int mouse_face_deferred_gc;
-
-  /* FRAME and X, Y position of mouse when last checked for
-     highlighting.  X and Y can be negative or out of range for the frame.  */
-  struct frame *mouse_face_mouse_frame;
-  int mouse_face_mouse_x, mouse_face_mouse_y;
-
-  /* Nonzero means defer mouse-motion highlighting.  */
-  int mouse_face_defer;
-
-  /* Nonzero means that the mouse highlight should not be shown.  */
-  int mouse_face_hidden;
-};
-
-typedef struct display_info Display_Info;
-
-/* This is a cut-down version of the one in xterm.h, which see.  */
-struct x_output
-{
-  PIX_TYPE background_pixel;   /* used in xfaces.c and lots of other places */
-  PIX_TYPE foreground_pixel;   /* ditto */
-  XFontStruct *font;           /* used in x-popup-menu (xmenu.c) */
-  Window hourglass_window;     /* currently unused (but maybe some day) */
-  unsigned hourglass_p : 1;    /* ditto */
-  struct display_info display_info; /* used for drawing mouse highlight */
-};
+typedef struct tty_display_info Display_Info;
 
-extern struct x_output the_only_x_display;
+extern struct tty_display_info the_only_display_info;
 
 #define FRAME_X_DISPLAY(f) ((Display *) 0)
-#define FRAME_FOREGROUND_PIXEL(f) (the_only_x_display.foreground_pixel)
-#define FRAME_BACKGROUND_PIXEL(f) (the_only_x_display.background_pixel)
-#define FRAME_FONT(f) (the_only_x_display.font)
-#define FRAME_X_DISPLAY_INFO(f) (&the_only_x_display.display_info)
+#define FRAME_FONT(f) ((f)->output_data.tty->font)
+#define FRAME_X_DISPLAY_INFO(f) (&the_only_display_info)
 
 /* Prototypes.  */
 
@@ -113,13 +69,12 @@ struct window;
 
 /* Defined in xfns.c; emulated on msdos.c */
 
-extern void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
-extern int x_pixel_width P_ ((struct frame *));
-extern int x_pixel_height P_ ((struct frame *));
+extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
+extern int x_pixel_width (struct frame *);
+extern int x_pixel_height (struct frame *);
 
 #define XFreeGC (void)
 #define x_destroy_bitmap(p1,p2)
-#define load_pixmap(p1,p2,p3,p4) (0)
 #define XGetGeometry(p1,p2,p3,p4,p5,p6,p7,p8,p9)
 #define DisplayWidth(p1,p2) (SELECTED_FRAME()->text_cols)
 #define DisplayHeight(p1,p2) (SELECTED_FRAME()->text_lines)