]> code.delx.au - gnu-emacs/blobdiff - src/w32term.h
Fix input methods for GTK.
[gnu-emacs] / src / w32term.h
index dee495de0cd867573eb1a821c2d841f899e4fd5a..bc99e0f36f2bdc64b14aa6bd30de07049fa22641 100644 (file)
@@ -63,13 +63,6 @@ extern BOOL bUseDflt;
 
 extern struct frame *x_window_to_frame ();
 
-enum text_cursor_kinds {
-  NO_CURSOR = -1,
-  FILLED_BOX_CURSOR,
-  HOLLOW_BOX_CURSOR,
-  BAR_CURSOR
-};
-
 /* Structure recording bitmaps and reference count.
    If REFCOUNT is 0 then this record is free to be reused.  */
 
@@ -234,7 +227,7 @@ struct w32_display_info
      event).  It points to the focus frame's selected window's
      frame.  It differs from w32_focus_frame when we're using a global
      minibuffer.  */
-  struct frame *w32_highlight_frame;
+  struct frame *x_highlight_frame;
 
   /* Cache of images.  */
   struct image_cache *image_cache;
@@ -357,6 +350,7 @@ struct w32_output
   Cursor cross_cursor;
   Cursor hourglass_cursor;
   Cursor horizontal_drag_cursor;
+  Cursor hand_cursor;
 
   /* Window whose cursor is hourglass_cursor.  This window is
      temporarily mapped to display an hourglass cursor.  */
@@ -368,17 +362,6 @@ struct w32_output
   /* Flag to set when the window needs to be completely repainted.  */
   int needs_exposure;
 
-  /* What kind of text cursor is drawn in this window right now?
-     (If there is no cursor (phys_cursor_x < 0), then this means nothing.)  */
-  enum text_cursor_kinds current_cursor;
-
-  /* What kind of text cursor should we draw in the future?
-     This should always be filled_box_cursor or bar_cursor.  */
-  enum text_cursor_kinds desired_cursor;
-
-  /* Width of bar cursor (if we are using that).  */
-  int cursor_width;
-
   DWORD dwStyle;
 
   /* The size of the extra width currently allotted for vertical
@@ -410,6 +393,9 @@ struct w32_output
   /* Nonzero means menubar is currently active.  */
   char menubar_active;
 
+  /* Nonzero means a menu command is being processed.  */
+  char menu_command_in_progress;
+
   /* Nonzero means menubar is about to become active, but should be
      brought up to date first.  */
   volatile char pending_menu_activation;
@@ -426,10 +412,32 @@ struct w32_output
   /* The background for which the above relief GCs were set up.
      They are changed only when a different background is involved.  */
   unsigned long relief_background;
+
+  /* See enum below */
+  int want_fullscreen;
+
+  /* This many pixels are the difference between the outer window (i.e. the
+     left of the window manager decoration) and FRAME_W32_WINDOW. */
+  int x_pixels_diff;
+
+  /* This many pixels are the difference between the outer window (i.e. the
+     top of the window manager titlebar) and FRAME_W32_WINDOW. */
+  int y_pixels_diff;
 };
 
 extern struct w32_output w32term_display;
 
+enum
+{
+  /* Values used as a bit mask, BOTH == WIDTH | HEIGHT.  */
+  FULLSCREEN_NONE       = 0,
+  FULLSCREEN_WIDTH      = 1,
+  FULLSCREEN_HEIGHT     = 2,
+  FULLSCREEN_BOTH       = 3,
+  FULLSCREEN_WAIT       = 4,
+  FULLSCREEN_MOVE_WAIT  = 8,
+};
+
 /* Return the window associated with the frame F.  */
 #define FRAME_W32_WINDOW(f) ((f)->output_data.w32->window_desc)
 
@@ -455,8 +463,6 @@ extern struct w32_output w32term_display;
 #define PIXEL_WIDTH(f) ((f)->output_data.w32->pixel_width)
 #define PIXEL_HEIGHT(f) ((f)->output_data.w32->pixel_height)
 
-#define FRAME_DESIRED_CURSOR(f) ((f)->output_data.w32->desired_cursor)
-
 /* Value is the smallest width of any character in any font on frame F.  */
 
 #define FRAME_SMALLEST_CHAR_WIDTH(F) \
@@ -695,6 +701,9 @@ w32_fill_area (f,hdc,f->output_data.x->background_pixel,px,py,nx,ny)
 extern struct font_info *w32_load_font ();
 extern void w32_unload_font ();
 
+extern void x_fullscreen_adjust P_ ((struct frame *f, int *, int *,
+                                    int *, int *));
+
 /* Define for earlier versions of Visual C */
 #ifndef WM_MOUSEWHEEL
 #define WM_MOUSEWHEEL                 (WM_MOUSELAST + 1)
@@ -727,7 +736,8 @@ extern void w32_unload_font ();
 #define WM_EMACS_DESTROY_CARET         (WM_EMACS_START + 16)
 #define WM_EMACS_SHOW_CARET            (WM_EMACS_START + 17)
 #define WM_EMACS_HIDE_CARET            (WM_EMACS_START + 18)
-#define WM_EMACS_END                   (WM_EMACS_START + 19)
+#define WM_EMACS_SETCURSOR             (WM_EMACS_START + 19)
+#define WM_EMACS_END                   (WM_EMACS_START + 20)
 
 #define WND_FONTWIDTH_INDEX    (0) 
 #define WND_LINEHEIGHT_INDEX   (4)