home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / e20313sr.zip / emacs / 20.3.1 / src / msdos.h < prev    next >
C/C++ Source or Header  |  1999-07-31  |  6KB  |  168 lines

  1. /* MS-DOS specific C utilities, interface.
  2.    Copyright (C) 1993 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU Emacs.
  5.  
  6. GNU Emacs is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2, or (at your option)
  9. any later version.
  10.  
  11. GNU Emacs is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU Emacs; see the file COPYING.  If not, write to
  18. the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  19. Boston, MA 02111-1307, USA.  */
  20.  
  21. #ifndef _MSDOS_H_
  22. #define _MSDOS_H_
  23.  
  24. #include <dpmi.h>
  25.  
  26. int dos_ttraw ();
  27. int dos_ttcooked ();
  28. int dos_get_saved_screen (char **, int *, int *);
  29. int dos_set_keyboard (int, int);
  30. void dos_set_window_size (int *, int *);
  31.  
  32. int getdefdir (int, char*);
  33. void unixtodos_filename (char *);
  34. void dostounix_filename (char *);
  35. char *rootrelativepath (char *);
  36. void init_environment ();
  37. void internal_terminal_init ();
  38. void ctrl_break_func (_go32_dpmi_registers *);
  39. void install_ctrl_break_check ();
  40.  
  41. extern int have_mouse;
  42. void mouse_init ();
  43. void mouse_on ();
  44. void mouse_off ();
  45. void mouse_moveto (int, int);
  46.  
  47. #ifndef HAVE_X_WINDOWS
  48. /* Dummy types.  */
  49. typedef int XFontStruct;
  50. typedef int GC;
  51. typedef int Pixmap;
  52. typedef int Display;
  53. typedef int Window;
  54. typedef int XRectangle;
  55. #define PIX_TYPE int
  56. #define XDISPLAY
  57.  
  58. /* This is a cut-down version of the one in xterm.h, which see.  */
  59. struct x_output
  60. {
  61.   int left_pos;
  62.   int top_pos;
  63.   int line_height;
  64.   PIX_TYPE background_pixel;
  65.   PIX_TYPE foreground_pixel;
  66.   XFontStruct *font;
  67.   struct face **param_faces;
  68.   int n_param_faces;
  69.   struct face **computed_faces;
  70.   int n_computed_faces;
  71.   int size_computed_faces;
  72. };
  73.  
  74. extern struct x_output the_only_x_display;
  75. extern Display *x_current_display;
  76.  
  77. #define FRAME_PARAM_FACES(f) (the_only_x_display.param_faces)
  78. #define FRAME_N_PARAM_FACES(f) (the_only_x_display.n_param_faces)
  79. #define FRAME_DEFAULT_PARAM_FACE(f) (FRAME_PARAM_FACES (f)[0])
  80. #define FRAME_MODE_LINE_PARAM_FACE(f) (FRAME_PARAM_FACES (f)[1])
  81. #define FRAME_COMPUTED_FACES(f) (the_only_x_display.computed_faces)
  82. #define FRAME_N_COMPUTED_FACES(f) (the_only_x_display.n_computed_faces)
  83. #define FRAME_SIZE_COMPUTED_FACES(f) (the_only_x_display.size_computed_faces)
  84. #define FRAME_DEFAULT_FACE(f) (the_only_x_display.computed_faces[0])
  85. #define FRAME_MODE_LINE_FACE(f) (the_only_x_display.computed_faces[1])
  86. #define FRAME_X_DISPLAY(f) ((Display *) 0)
  87. #define FRAME_FOREGROUND_PIXEL(f) (the_only_x_display.foreground_pixel)
  88. #define FRAME_BACKGROUND_PIXEL(f) (the_only_x_display.background_pixel)
  89. #define FRAME_FONT(f) (the_only_x_display.font)
  90.  
  91. /* Prototypes.  */
  92.  
  93. /* Forward declarations for prototypes.  */
  94. struct frame;
  95. struct window;
  96. extern void init_frame_faces P_ ((struct frame *));
  97. extern void free_frame_faces P_ ((struct frame *));
  98. extern struct face *intern_face P_ ((struct frame *, struct face *));
  99. extern int face_name_id_number P_ ((struct frame *, Lisp_Object));
  100. extern void recompute_basic_faces P_ ((struct frame *));
  101. extern int compute_char_face P_ ((struct frame *frame,
  102.                   struct window *w,
  103.                   int pos,
  104.                   int region_beg, int region_end,
  105.                   int *endptr,
  106.                   int limit, int mouse));
  107. extern int compute_glyph_face P_ ((struct frame *, int, int));
  108. extern void pixel_to_glyph_coords P_ ((struct frame *f, int pix_x, int pix_y,
  109.                        int *x, int *y, XRectangle *bounds,
  110.                        int noclip));
  111. extern void glyph_to_pixel_coords P_ ((struct frame *f, int x, int y,
  112.                        int *pix_x, int *pix_y));
  113.  
  114. /* Defined in xfns.c */
  115.  
  116. extern int have_menus_p P_ ((void));
  117. extern void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
  118. extern int x_pixel_width P_ ((struct frame *));
  119. extern int x_pixel_height P_ ((struct frame *));
  120.  
  121. /* Defined in xfaces.c */
  122. extern void clear_face_cache P_ ((void));
  123. extern int compute_glyph_face P_ ((struct frame *, int, int));
  124. extern int compute_glyph_face_1 P_ ((struct frame *, Lisp_Object, int));
  125.  
  126.  
  127. #define XFreeGC (void)
  128. #define same_size_fonts(foo,bar) (1)
  129. #define unload_font(p1,p2)
  130. #define unload_color(p1,p2)
  131. #define x_destroy_bitmap(p1,p2)
  132. #define load_pixmap(p1,p2,p3,p4) (0)
  133. #define XGetGeometry(p1,p2,p3,p4,p5,p6,p7,p8,p9)
  134. #define DisplayWidth(p1,p2) (selected_frame->width)
  135. #define DisplayHeight(p1,p2) (selected_frame->height)
  136. #define XMenuSetAEQ (void)
  137. #define XMenuSetFreeze (void)
  138. #define XMenuRecompute (void)
  139. #define FONT_WIDTH(foo) 1
  140. #define XM_FAILURE -1
  141. #define XM_SUCCESS 1
  142. #define XM_NO_SELECT 2
  143. #define XM_IA_SELECT 3
  144. #define ButtonReleaseMask 0
  145.  
  146. typedef struct x_menu_struct
  147. {
  148.   int count;
  149.   char **text;
  150.   struct x_menu_struct **submenu;
  151.   int *panenumber; /* Also used as enable.  */
  152.   int allocated;
  153.   int panecount;
  154.   int width;
  155. } XMenu;
  156.  
  157. XMenu *XMenuCreate (Display *, Window, char *);
  158. int XMenuAddPane (Display *, XMenu *, char *, int);
  159. int XMenuAddSelection (Display *, XMenu *, int, int, char *, int);
  160. void XMenuLocate (Display *, XMenu *, int, int, int, int,
  161.           int *, int *, int *, int *);
  162. int XMenuActivate (Display *, XMenu *, int *, int *, int, int, unsigned, char **);
  163. void XMenuDestroy (Display *, XMenu *);
  164.  
  165. #endif /* not HAVE_X_WINDOWS */
  166.  
  167. #endif /* not _MSDOS_H_ */
  168.