*** empty log message ***
[bpt/emacs.git] / src / w32term.h
index 6eb7988..595d7d1 100644 (file)
@@ -6,7 +6,7 @@ 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 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
 any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
@@ -100,6 +100,9 @@ struct w32_display_info
   /* Chain of all w32_display_info structures.  */
   struct w32_display_info *next;
 
+  /* The generic display parameters corresponding to this w32 display.  */
+  struct terminal *terminal;
+
   /* This is a cons cell of the form (NAME . FONT-LIST-CACHE).
      The same cons cell also appears in x_display_name_list.  */
   Lisp_Object name_list_element;
@@ -198,7 +201,7 @@ struct w32_display_info
   char *w32_id_name;
 
   /* The number of fonts actually stored in w32_font_table.
-     font_table[n] is used and valid iff 0 <= n < n_fonts. 0 <=
+     font_table[n] is used and valid if 0 <= n < n_fonts. 0 <=
      n_fonts <= font_table_size. and font_table[i].name != 0. */
   int n_fonts;
 
@@ -274,8 +277,10 @@ extern Lisp_Object x_get_font_repertory P_ ((struct frame *,
    diffs between X and w32 code.  */
 struct x_output
 {
+#if 0 /* These are also defined in struct frame.  Use that instead.  */
   PIX_TYPE background_pixel;
   PIX_TYPE foreground_pixel;
+#endif
 
   /* Keep track of focus.  May be EXPLICIT if we received a FocusIn for this
      frame, or IMPLICIT if we received an EnterNotify.
@@ -411,8 +416,6 @@ extern struct w32_output w32term_display;
 #define FRAME_W32_WINDOW(f) ((f)->output_data.w32->window_desc)
 #define FRAME_X_WINDOW(f) ((f)->output_data.w32->window_desc)
 
-#define FRAME_FOREGROUND_PIXEL(f) ((f)->output_data.x->foreground_pixel)
-#define FRAME_BACKGROUND_PIXEL(f) ((f)->output_data.x->background_pixel)
 #define FRAME_FONT(f) ((f)->output_data.w32->font)
 #define FRAME_FONTSET(f) ((f)->output_data.w32->fontset)
 #define FRAME_BASELINE_OFFSET(f) ((f)->output_data.w32->baseline_offset)
@@ -497,6 +500,10 @@ struct scroll_bar {
      place where the user grabbed it.  If the handle isn't currently
      being dragged, this is Qnil.  */
   Lisp_Object dragging;
+
+  /* t if the background of the fringe that is adjacent to a scroll
+     bar is extended to the gap between the fringe and the bar.  */
+  Lisp_Object fringe_extended_p;
 };
 
 /* The number of elements a vector holding a struct scroll_bar needs.  */
@@ -586,20 +593,20 @@ extern void w32_fill_rect ();
 extern void w32_clear_window ();
 
 #define w32_fill_area(f,hdc,pix,x,y,nx,ny) \
-{ \
+do { \
     RECT rect; \
     rect.left = x; \
     rect.top = y; \
     rect.right = x + nx; \
     rect.bottom = y + ny; \
     w32_fill_rect (f,hdc,pix,&rect); \
-}
+} while (0)
 
 #define w32_clear_rect(f,hdc,lprect) \
-w32_fill_rect (f,hdc,f->output_data.x->background_pixel,lprect)
+  w32_fill_rect (f, hdc, FRAME_BACKGROUND_PIXEL (f), lprect)
 
 #define w32_clear_area(f,hdc,px,py,nx,ny) \
-w32_fill_area (f,hdc,f->output_data.x->background_pixel,px,py,nx,ny)
+  w32_fill_area (f, hdc, FRAME_BACKGROUND_PIXEL (f), px, py, nx, ny)
 
 extern struct font_info *w32_load_font ();
 extern void w32_unload_font ();
@@ -615,6 +622,13 @@ extern void w32_unload_font ();
 #define WM_XBUTTONDOWN                 (WM_MOUSEWHEEL + 1)
 #define WM_XBUTTONUP                   (WM_MOUSEWHEEL + 2)
 #endif /* WM_XBUTTONDOWN */
+#ifndef WM_MOUSEHWHEEL
+#define WM_MOUSEHWHEEL                 (WM_MOUSEWHEEL + 4)
+#endif /* WM_MOUSEHWHEEL  */
+#ifndef WM_APPCOMMAND
+#define WM_APPCOMMAND 0x319
+#define GET_APPCOMMAND_LPARAM(lParam)  (HIWORD(lParam) & 0x7fff)
+#endif
 
 #define WM_EMACS_START                 (WM_USER + 1)
 #define WM_EMACS_KILL                  (WM_EMACS_START + 0)
@@ -694,6 +708,9 @@ extern void wait_for_sync ();
 
 extern BOOL parse_button ();
 
+extern void w32_sys_ring_bell (struct frame *f);
+extern void x_delete_display (struct w32_display_info *dpyinfo);
+
 /* 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.  */