-/* Definitions and headers for communication on the Microsoft W32 API.
- Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc.
+/* Definitions and headers for communication on the Microsoft Windows API.
+ Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
#endif
};
-extern void w32_regenerate_palette(struct frame *f);
+extern void w32_regenerate_palette (struct frame *f);
\f
/* For each display (currently only one on w32), we have a structure that
/* Emacs bitmap-id of the default icon bitmap for this frame.
Or -1 if none has been allocated yet. */
- int icon_bitmap_id;
+ ptrdiff_t icon_bitmap_id;
/* The root window of this screen. */
Window root_window;
struct w32_bitmap_record *bitmaps;
/* Allocated size of bitmaps field. */
- int bitmaps_size;
+ ptrdiff_t bitmaps_size;
/* Last used bitmap index. */
- int bitmaps_last;
+ ptrdiff_t bitmaps_last;
/* The frame (if any) which has the window that has keyboard focus.
Zero if none. This is examined by Ffocus_frame in w32fns.c. Note
the information that is specific to W32 windows. */
/* Put some things in x_output for compatibility.
- NTEMACS_TODO: Move all common things here to eliminate unneccesary
+ NTEMACS_TODO: Move all common things here to eliminate unnecessary
diffs between X and w32 code. */
struct x_output
{
{
/* Values for focus_state, used as bit mask.
EXPLICIT means we received a FocusIn for the frame and know it has
- the focus. IMPLICIT means we recevied an EnterNotify and the frame
+ the focus. IMPLICIT means we received an EnterNotify and the frame
may have the focus if no window manager is running.
FocusOut and LeaveNotify clears EXPLICIT/IMPLICIT. */
FOCUS_NONE = 0,
/* Non-hourglass cursor that is currently active. */
Cursor current_cursor;
- /* Flag to set when the window needs to be completely repainted. */
- int needs_exposure;
-
DWORD dwStyle;
/* This is the Emacs structure for the display this frame is on. */
/* Return the window associated with the frame F. */
#define FRAME_W32_WINDOW(f) ((f)->output_data.w32->window_desc)
-#define FRAME_X_WINDOW(f) ((f)->output_data.w32->window_desc)
+#define FRAME_X_WINDOW(f) FRAME_W32_WINDOW (f)
#define FRAME_FONT(f) ((f)->output_data.w32->font)
#define FRAME_FONTSET(f) ((f)->output_data.w32->fontset)
#define SCROLL_BAR_VEC_SIZE \
((sizeof (struct scroll_bar) \
- sizeof (EMACS_INT) - sizeof (struct Lisp_Vector *)) \
- / sizeof (Lisp_Object))
+ / word_size)
/* Turning a lisp vector value into a pointer to a struct scroll_bar. */
#define XSCROLL_BAR(vec) ((struct scroll_bar *) XVECTOR (vec))
#define WM_EMACS_HIDE_CARET (WM_EMACS_START + 18)
#define WM_EMACS_SETCURSOR (WM_EMACS_START + 19)
#define WM_EMACS_PAINT (WM_EMACS_START + 20)
-#define WM_EMACS_END (WM_EMACS_START + 21)
+#define WM_EMACS_BRINGTOTOP (WM_EMACS_START + 21)
+#define WM_EMACS_END (WM_EMACS_START + 22)
#define WND_FONTWIDTH_INDEX (0)
#define WND_LINEHEIGHT_INDEX (4)
/* Keypad command key support. W32 doesn't have virtual keys defined
for the function keys on the keypad (they are mapped to the standard
- fuction keys), so we define our own. */
+ function keys), so we define our own. */
#define VK_NUMPAD_BEGIN 0x92
#define VK_NUMPAD_CLEAR (VK_NUMPAD_BEGIN + 0)
#define VK_NUMPAD_ENTER (VK_NUMPAD_BEGIN + 1)
#define RIGHT_WIN_PRESSED 0x4000
#define APPS_PRESSED 0x2000
+/* The current ANSI input codepage for GUI sessions. */
+extern int w32_keyboard_codepage;
+
/* When compiling on Windows 9x/ME and NT 3.x, the following are not defined
(even though they are supported on 98 and ME. */
#ifndef WM_MOUSELEAVE
XGCValues *XCreateGC (void *, Window, unsigned long, XGCValues *);
struct frame * check_x_frame (Lisp_Object);
-EXFUN (Fx_display_color_p, 1);
-EXFUN (Fx_display_grayscale_p, 1);
-
typedef DWORD (WINAPI * ClipboardSequence_Proc) (void);
typedef BOOL (WINAPI * AppendMenuW_Proc) (
IN HMENU,