]> code.delx.au - gnu-emacs/blobdiff - src/termhooks.h
Merge from emacs--devo--0
[gnu-emacs] / src / termhooks.h
index 13b41f95f70436ee80e888bbe580dfccd2f7cbcc..1ca9234cac218bc6f711d33b121c9bd03fbc1bdd 100644 (file)
@@ -1,6 +1,6 @@
 /* Parameters and display hooks for terminal devices.
    Copyright (C) 1985, 1986, 1993, 1994, 2002, 2003, 2004,
-                 2005, 2006 Free Software Foundation, Inc.
+                 2005, 2006, 2007 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -43,6 +43,11 @@ enum scroll_bar_part {
   scroll_bar_move_ratio
 };
 
+/* If the value of the frame parameter changed, whis hook is called.
+   For example, if going from fullscreen to not fullscreen this hook
+   may do something OS dependent, like extended window manager hints on X11.  */
+extern void (*fullscreen_hook) P_ ((struct frame *f));
+
 \f
 /* Input queue declarations and hooks.  */
 
@@ -183,10 +188,14 @@ enum event_kind
   /* Generated when an Apple event, a HICommand event, or a Services
      menu event is received and the corresponding handler is
      registered.  Members `x' and `y' are for the event class and ID
-     symbols, respectively.  Member `code' points to the Apple event
-     descriptor.  Parameters for Non-Apple events are converted to
-     those in Apple events.  */
-  MAC_APPLE_EVENT
+     symbols, respectively.  Member `arg' is a Lisp object converted
+     from the received Apple event.  Parameters for non-Apple events
+     are converted to those in Apple events.  */
+  MAC_APPLE_EVENT,
+#endif
+
+#ifdef HAVE_GPM
+  GPM_CLICK_EVENT
 #endif
 };
 
@@ -285,9 +294,24 @@ enum {
   meta_modifier        =  CHAR_META    /* Under X, the XK_Meta_[LR] keysyms.  */
 };
 
+#ifdef HAVE_GPM
+#include <gpm.h>
+extern int handle_one_term_event (struct tty_display_info *, Gpm_Event *, struct input_event *);
+extern void term_mouse_moveto (int, int);
+
+/* Nonzero means mouse is enabled on Linux console */
+extern int term_gpm;
+
+/* The id of the terminal device for which we have gpm support.  */
+extern int gpm_tty;
+#endif
+
 #endif /* CONSP */
 
 \f
+struct mac_display_info;
+struct w32_display_info;
+
 /* Terminal-local parameters. */
 struct terminal
 {
@@ -299,11 +323,17 @@ struct terminal
 
   /* The number of frames that are on this terminal. */
   int reference_count;
-  
+
+  /* Nonzero while deleting this terminal.  Used to protect against
+     recursive calls to delete_terminal_hook.  */
+  int deleted;
+
   /* The type of the terminal device. */
   enum output_method type;
 
-  /* The name of the terminal device.  Do not use this to identify the device. */
+  /* The name of the terminal device.  Do not use this to uniquely
+     identify a terminal; the same device may be opened multiple
+     times. */
   char *name;
 
 #ifdef MULTI_KBOARD
@@ -316,6 +346,8 @@ struct terminal
   {
     struct tty_display_info *tty;     /* termchar.h */
     struct x_display_info *x;         /* xterm.h */
+    struct w32_display_info *w32;     /* w32term.h */
+    struct mac_display_info *mac;     /* macterm.h */
   } display_info;
 
 \f
@@ -437,6 +469,11 @@ struct terminal
      windows.  */
   void (*frame_raise_lower_hook) P_ ((struct frame *f, int raise));
 
+  /* If the value of the frame parameter changed, whis hook is called.
+     For example, if going from fullscreen to not fullscreen this hook
+     may do something OS dependent, like extended window manager hints on X11.  */
+  void (*fullscreen_hook) P_ ((struct frame *f));
+    
   \f
   /* Scroll bar hooks.  */