aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32term.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/w32term.h')
-rw-r--r--src/w32term.h49
1 files changed, 43 insertions, 6 deletions
diff --git a/src/w32term.h b/src/w32term.h
index 28d4ca6c490..b319f0ca592 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -1,5 +1,5 @@
1/* Definitions and headers for communication on the Microsoft Windows API. 1/* Definitions and headers for communication on the Microsoft Windows API.
2 Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc. 2 Copyright (C) 1995, 2001-2013 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -217,8 +217,6 @@ extern void x_set_mouse_pixel_position (struct frame *f, int pix_x, int pix_y);
217extern void x_make_frame_visible (struct frame *f); 217extern void x_make_frame_visible (struct frame *f);
218extern void x_make_frame_invisible (struct frame *f); 218extern void x_make_frame_invisible (struct frame *f);
219extern void x_iconify_frame (struct frame *f); 219extern void x_iconify_frame (struct frame *f);
220extern int x_char_width (struct frame *f);
221extern int x_char_height (struct frame *f);
222extern int x_pixel_width (struct frame *f); 220extern int x_pixel_width (struct frame *f);
223extern int x_pixel_height (struct frame *f); 221extern int x_pixel_height (struct frame *f);
224extern void x_set_frame_alpha (struct frame *f); 222extern void x_set_frame_alpha (struct frame *f);
@@ -361,6 +359,12 @@ struct w32_output
361 /* The background for which the above relief GCs were set up. 359 /* The background for which the above relief GCs were set up.
362 They are changed only when a different background is involved. */ 360 They are changed only when a different background is involved. */
363 unsigned long relief_background; 361 unsigned long relief_background;
362
363 /* Frame geometry and full-screen mode before it was resized by
364 specifying the 'fullscreen' frame parameter. Used to restore the
365 geometry when 'fullscreen' is reset to nil. */
366 int normal_width, normal_height, normal_top, normal_left;
367 int prev_fsmode;
364}; 368};
365 369
366extern struct w32_output w32term_display; 370extern struct w32_output w32term_display;
@@ -392,6 +396,13 @@ extern struct w32_output w32term_display;
392 396
393#define FRAME_SMALLEST_FONT_HEIGHT(F) \ 397#define FRAME_SMALLEST_FONT_HEIGHT(F) \
394 FRAME_W32_DISPLAY_INFO(F)->smallest_font_height 398 FRAME_W32_DISPLAY_INFO(F)->smallest_font_height
399
400#define FRAME_NORMAL_WIDTH(F) ((F)->output_data.w32->normal_width)
401#define FRAME_NORMAL_HEIGHT(F) ((F)->output_data.w32->normal_height)
402#define FRAME_NORMAL_TOP(F) ((F)->output_data.w32->normal_top)
403#define FRAME_NORMAL_LEFT(F) ((F)->output_data.w32->normal_left)
404#define FRAME_PREV_FSMODE(F) ((F)->output_data.w32->prev_fsmode)
405
395 406
396/* W32-specific scroll bar stuff. */ 407/* W32-specific scroll bar stuff. */
397 408
@@ -604,7 +615,8 @@ do { \
604#define WM_EMACS_PAINT (WM_EMACS_START + 20) 615#define WM_EMACS_PAINT (WM_EMACS_START + 20)
605#define WM_EMACS_BRINGTOTOP (WM_EMACS_START + 21) 616#define WM_EMACS_BRINGTOTOP (WM_EMACS_START + 21)
606#define WM_EMACS_INPUT_READY (WM_EMACS_START + 22) 617#define WM_EMACS_INPUT_READY (WM_EMACS_START + 22)
607#define WM_EMACS_END (WM_EMACS_START + 23) 618#define WM_EMACS_FILENOTIFY (WM_EMACS_START + 23)
619#define WM_EMACS_END (WM_EMACS_START + 24)
608 620
609#define WND_FONTWIDTH_INDEX (0) 621#define WND_FONTWIDTH_INDEX (0)
610#define WND_LINEHEIGHT_INDEX (4) 622#define WND_LINEHEIGHT_INDEX (4)
@@ -654,7 +666,7 @@ extern void deselect_palette (struct frame * f, HDC hdc);
654extern HDC get_frame_dc (struct frame * f); 666extern HDC get_frame_dc (struct frame * f);
655extern int release_frame_dc (struct frame * f, HDC hDC); 667extern int release_frame_dc (struct frame * f, HDC hDC);
656 668
657extern void drain_message_queue (void); 669extern int drain_message_queue (void);
658 670
659extern BOOL get_next_msg (W32Msg *, BOOL); 671extern BOOL get_next_msg (W32Msg *, BOOL);
660extern BOOL post_msg (W32Msg *); 672extern BOOL post_msg (W32Msg *);
@@ -664,10 +676,17 @@ extern BOOL parse_button (int, int, int *, int *);
664 676
665extern void w32_sys_ring_bell (struct frame *f); 677extern void w32_sys_ring_bell (struct frame *f);
666extern void x_delete_display (struct w32_display_info *dpyinfo); 678extern void x_delete_display (struct w32_display_info *dpyinfo);
679
680extern volatile int notification_buffer_in_use;
681extern BYTE file_notifications[16384];
682extern DWORD notifications_size;
683extern void *notifications_desc;
684extern Lisp_Object w32_get_watch_object (void *);
685extern Lisp_Object lispy_file_action (DWORD);
686
667extern void w32_initialize_display_info (Lisp_Object); 687extern void w32_initialize_display_info (Lisp_Object);
668extern void initialize_w32_display (struct terminal *); 688extern void initialize_w32_display (struct terminal *);
669 689
670
671/* Keypad command key support. W32 doesn't have virtual keys defined 690/* Keypad command key support. W32 doesn't have virtual keys defined
672 for the function keys on the keypad (they are mapped to the standard 691 for the function keys on the keypad (they are mapped to the standard
673 function keys), so we define our own. */ 692 function keys), so we define our own. */
@@ -755,12 +774,30 @@ extern const char*
755w32_name_of_message (UINT msg); 774w32_name_of_message (UINT msg);
756#endif /* EMACSDEBUG */ 775#endif /* EMACSDEBUG */
757 776
777#ifdef NTGUI_UNICODE
778extern Lisp_Object ntgui_encode_system (Lisp_Object str);
779#define GUISTR(x) (L ## x)
780#define GUI_ENCODE_FILE GUI_ENCODE_SYSTEM
781#define GUI_ENCODE_SYSTEM(x) ntgui_encode_system (x)
782#define GUI_FN(fn) fn ## W
783typedef wchar_t guichar_t;
784#else /* !NTGUI_UNICODE */
785#define GUISTR(x) x
786#define GUI_ENCODE_FILE ENCODE_FILE
787#define GUI_ENCODE_SYSTEM ENCODE_SYSTEM
788#define GUI_FN(fn) fn
789typedef char guichar_t;
790#endif /* NTGUI_UNICODE */
791
792#define GUI_SDATA(x) ((guichar_t*) SDATA (x))
793
758extern void syms_of_w32term (void); 794extern void syms_of_w32term (void);
759extern void syms_of_w32menu (void); 795extern void syms_of_w32menu (void);
760extern void syms_of_w32fns (void); 796extern void syms_of_w32fns (void);
761 797
762extern void globals_of_w32menu (void); 798extern void globals_of_w32menu (void);
763extern void globals_of_w32fns (void); 799extern void globals_of_w32fns (void);
800extern void globals_of_w32notify (void);
764 801
765#ifdef CYGWIN 802#ifdef CYGWIN
766extern int w32_message_fd; 803extern int w32_message_fd;