Merge from emacs-23
[bpt/emacs.git] / src / msdos.h
index 59e75ca..9d4de5a 100644 (file)
@@ -1,13 +1,13 @@
 /* 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.
 
-GNU Emacs is free software; you can redistribute it and/or modify
+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 3, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,17 +15,15 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 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., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef EMACS_MSDOS_H
 #define EMACS_MSDOS_H
 
 #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 *);
@@ -34,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
@@ -56,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.  */
 
@@ -115,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)