/* Definitions and headers for communication on the Microsoft W32 API.
- Copyright (C) 1995, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc.
This file is part of GNU Emacs.
extern MSG CurMsg;
extern BOOL bUseDflt;
-extern struct frame *x_window_to_frame ();
-
/* Structure recording bitmaps and reference count.
If REFCOUNT is 0 then this record is free to be reused. */
int height, width, depth;
};
-/* Palette book-keeping stuff for mapping requested colors into the
- system palette. Keep a ref-counted list of requested colors and
- regenerate the app palette whenever the requested list changes. */
-
-extern Lisp_Object Vw32_enable_palette;
-
struct w32_palette_entry {
struct w32_palette_entry * next;
PALETTEENTRY entry;
/* Number of bits per pixel on this screen. */
int n_cbits;
- /* Dimensions of this screen. */
- int height, width;
- int height_in,width_in;
-
/* Mask of things that cause the mouse to be grabbed. */
int grabbed;
/* Reusable Graphics Context for drawing a cursor in a non-default face. */
XGCValues *scratch_cursor_gc;
- /* 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_beg_x, mouse_face_beg_y;
- int mouse_face_end_row, mouse_face_end_col;
- int mouse_face_end_x, mouse_face_end_y;
- int mouse_face_past_end;
- Lisp_Object mouse_face_window;
- int mouse_face_face_id;
- Lisp_Object mouse_face_overlay;
-
- /* 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;
-
- int mouse_face_image_state;
+ /* Information about the range of text currently shown in
+ mouse-face. */
+ Mouse_HLInfo mouse_highlight;
char *w32_id_name;
FONT-LIST-CACHE records previous values returned by x-list-fonts. */
extern Lisp_Object w32_display_name_list;
-/* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
-extern Lisp_Object Vx_pixel_size_width_font_regexp;
+extern struct frame *x_window_to_frame (struct w32_display_info *, HWND);
-struct w32_display_info *x_display_info_for_name ();
+struct w32_display_info *x_display_info_for_name (Lisp_Object);
-Lisp_Object display_x_get_resource P_ ((struct w32_display_info *,
- Lisp_Object, Lisp_Object,
- Lisp_Object, Lisp_Object));
+Lisp_Object display_x_get_resource (struct w32_display_info *,
+ Lisp_Object, Lisp_Object,
+ Lisp_Object, Lisp_Object);
+
+extern struct w32_display_info *w32_term_init (Lisp_Object,
+ char *, char *);
+
+extern int x_display_pixel_height (struct w32_display_info *);
+extern int x_display_pixel_width (struct w32_display_info *);
-extern struct w32_display_info *w32_term_init ();
\f
#define PIX_TYPE COLORREF
#define VERTICAL_SCROLL_BAR_WIDTH_TRIM (0)
\f
-extern void w32_fill_rect ();
-extern void w32_clear_window ();
+struct frame; /* from frame.h */
+
+extern void w32_fill_rect (struct frame *, HDC, COLORREF, RECT *);
+extern void w32_clear_window (struct frame *);
#define w32_fill_area(f,hdc,pix,x,y,nx,ny) \
do { \
#define WM_APPCOMMAND 0x319
#define GET_APPCOMMAND_LPARAM(lParam) (HIWORD(lParam) & 0x7fff)
#endif
-#ifndef WM_UNICHAR
+#ifndef WM_UNICHAR
#define WM_UNICHAR 0x109
#endif
#ifndef UNICODE_NOCHAR
#define WM_EMACS_SHOW_CARET (WM_EMACS_START + 17)
#define WM_EMACS_HIDE_CARET (WM_EMACS_START + 18)
#define WM_EMACS_SETCURSOR (WM_EMACS_START + 19)
-#define WM_EMACS_END (WM_EMACS_START + 20)
+#define WM_EMACS_PAINT (WM_EMACS_START + 20)
+#define WM_EMACS_END (WM_EMACS_START + 21)
#define WND_FONTWIDTH_INDEX (0)
#define WND_LINEHEIGHT_INDEX (4)
extern CRITICAL_SECTION critsect;
-extern void init_crit ();
-extern void delete_crit ();
+extern void init_crit (void);
+extern void delete_crit (void);
-extern void signal_quit ();
+extern void signal_quit (void);
#define enter_crit() EnterCriticalSection (&critsect)
#define leave_crit() LeaveCriticalSection (&critsect)
extern HDC get_frame_dc (struct frame * f);
extern int release_frame_dc (struct frame * f, HDC hDC);
-extern void drain_message_queue ();
+extern void drain_message_queue (void);
-extern BOOL get_next_msg ();
-extern BOOL post_msg ();
+extern BOOL get_next_msg (W32Msg *, BOOL);
+extern BOOL post_msg (W32Msg *);
extern void complete_deferred_msg (HWND hwnd, UINT msg, LRESULT result);
-extern void wait_for_sync ();
-extern BOOL parse_button ();
+extern BOOL parse_button (int, int, int *, int *);
extern void w32_sys_ring_bell (struct frame *f);
extern void x_delete_display (struct w32_display_info *dpyinfo);
EXFUN (Fx_display_color_p, 1);
EXFUN (Fx_display_grayscale_p, 1);
-typedef DWORD (WINAPI * ClipboardSequence_Proc) ();
+typedef DWORD (WINAPI * ClipboardSequence_Proc) (void);
typedef BOOL (WINAPI * AppendMenuW_Proc) (
IN HMENU,
IN UINT,
IN UINT_PTR,
IN LPCWSTR);
-/* arch-tag: f201d05a-1240-4fc5-8ea4-ca24d4ee5671
- (do not change this comment) */
+extern HWND w32_system_caret_hwnd;
+extern int w32_system_caret_height;
+extern int w32_system_caret_x;
+extern int w32_system_caret_y;