Mercurial > emacs
view src/msdos.h @ 111339:e302712538dc
Unify mouse highlight code of MSDOS and GUI sessions.
xdisp.c (coords_in_mouse_face_p): Move prototype out of the
HAVE_WINDOW_SYSTEM conditional.
(x_y_to_hpos_vpos, frame_to_window_pixel_xy): Move out of the
HAVE_WINDOW_SYSTEM block.
(try_window_id) [HAVE_GPM || MSDOS]: Call
x_clear_window_mouse_face.
(draw_row_with_mouse_face): Implementation for HAVE_WINDOW_SYSTEM
systems.
(show_mouse_face): Call it, instead of calling draw_glyphs directly.
(show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
(cursor_in_mouse_face_p, rows_from_pos_range)
(mouse_face_from_buffer_pos, mouse_face_from_string_pos)
(note_mode_line_or_margin_highlight, note_mouse_highlight)
(x_clear_window_mouse_face, cancel_mouse_face): Move out of the
HAVE_WINDOW_SYSTEM block. Ifdef away window-system specific
fragments.
(note_mouse_highlight): Call popup_activated for MSDOS as well.
Clear mouse highlight if pointer is over glyphs whose OBJECT is an
integer.
(mouse_face_from_buffer_pos): Add parentheses around && within ||.
xmenu.c (popup_activated): Don't define on MSDOS.
dispnew.c (mirror_make_current): Set Y coordinate of the
mode-line and header-line rows.
termchar.h (struct tty_display_info): Define mouse_face_*
members not only for MSDOS. Delete stray whitespace.
<mouse_face_beg_x, mouse_face_beg_y, mouse_face_overlay>: New
struct members.
dispextern.h (DPYINFO_DEFINED) [HAVE_X_WINDOWS]: Define.
(DPYINFO_DEFINED) [HAVE_NTGUI]: Define.
(DPYINFO_DEFINED) [HAVE_NS]: Define.
(Display_Info) [!DPYINFO_DEFINED]: Define here.
(FRAME_X_DISPLAY_INFO) [HAVE_GPM]: Define.
(FRAME_X_DISPLAY_INFO): Define to NULL if not defined.
(frame_to_window_pixel_xy, note_mouse_highlight)
(x_clear_window_mouse_face, cancel_mouse_face, clear_mouse_face)
(show_mouse_face, cursor_in_mouse_face_p): Move prototypes out of
HAVE_WINDOW_SYSTEM conditional.
(draw_row_with_mouse_face): Declare prototype.
msdos.h (Display_Info): Don't define here.
msdos.c (show_mouse_face, clear_mouse_face)
(fast_find_position, IT_note_mode_line_highlight)
(IT_note_mouse_highlight): Functions deleted.
(IT_frame_up_to_date, dos_rawgetc): Call note_mouse_highlight
instead of IT_note_mouse_highlight.
(draw_row_with_mouse_face, popup_activated): New functions.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 30 Oct 2010 15:09:52 +0200 |
parents | 8efd6d04c47a |
children | b775602e70c8 |
line wrap: on
line source
/* MS-DOS specific C utilities, interface. Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GNU Emacs. 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 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 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. If not, see <http://www.gnu.org/licenses/>. */ #ifndef EMACS_MSDOS_H #define EMACS_MSDOS_H #include <dpmi.h> 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 *); int getdefdir (int, char*); void unixtodos_filename (char *); void dostounix_filename (char *); char *rootrelativepath (char *); void init_environment (int, char **, int); void internal_terminal_init (void); extern int have_mouse; void mouse_init (void); void mouse_on (void); void mouse_off (void); void mouse_moveto (int, int); #ifndef HAVE_X_WINDOWS /* Dummy types. */ typedef int XFontStruct; typedef int GC; typedef int Pixmap; typedef int Display; typedef int Window; typedef int XRectangle; #define PIX_TYPE unsigned long #define XDISPLAY extern struct tty_display_info the_only_display_info; #define FRAME_X_DISPLAY(f) ((Display *) 0) #define FRAME_FONT(f) ((f)->output_data.tty->font) #define FRAME_X_DISPLAY_INFO(f) (&the_only_display_info) /* Prototypes. */ /* Forward declarations for prototypes. */ struct frame; struct window; /* Defined in xfns.c; emulated on msdos.c */ 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 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) #define XMenuSetAEQ (void) #define XMenuSetFreeze (void) #define XMenuRecompute (void) #define FONT_WIDTH(foo) 1 #define XM_FAILURE -1 #define XM_SUCCESS 1 #define XM_NO_SELECT 2 #define XM_IA_SELECT 3 #define ButtonReleaseMask 0 typedef struct x_menu_struct { int count; char **text; struct x_menu_struct **submenu; int *panenumber; /* Also used as enable. */ int allocated; int panecount; int width; char **help_text; } XMenu; XMenu *XMenuCreate (Display *, Window, char *); int XMenuAddPane (Display *, XMenu *, char *, int); int XMenuAddSelection (Display *, XMenu *, int, int, char *, int, char *); void XMenuLocate (Display *, XMenu *, int, int, int, int, int *, int *, int *, int *); int XMenuActivate (Display *, XMenu *, int *, int *, int, int, unsigned, char **, void (*callback)(char *, int, int)); void XMenuDestroy (Display *, XMenu *); #endif /* not HAVE_X_WINDOWS */ #endif /* not EMACS_MSDOS_H */ /* arch-tag: ad21eeed-8fdb-4357-8007-36368a6bdbf3 (do not change this comment) */