Replace `iff' in comments.
[bpt/emacs.git] / src / termhooks.h
index 83721f6..3207825 100644 (file)
@@ -1,12 +1,13 @@
 /* Hooks by which low level terminal operations
    can be made to call other routines.
-   Copyright (C) 1985,86,93,94,2003  Free Software Foundation, Inc.
+   Copyright (C) 1985, 1986, 1993, 1994, 2001, 2002, 2003, 2004,
+                 2005, 2006, 2007  Free Software Foundation, Inc.
 
 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,
@@ -16,8 +17,8 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
 
 \f
 /* Miscellanea.   */
@@ -119,6 +120,11 @@ extern void (*frame_rehighlight_hook) P_ ((struct frame *));
    windows.  */
 extern 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.  */
+extern void (*fullscreen_hook) P_ ((struct frame *f));
+
 \f
 /* Scroll bar hooks.  */
 
@@ -195,7 +201,7 @@ extern void (*judge_scroll_bars_hook) P_ ((struct frame *FRAME));
 /* Input queue declarations and hooks.  */
 
 /* Expedient hack: only provide the below definitions to files that
-   are prepared to handle lispy things.  CONSP is defined iff lisp.h
+   are prepared to handle lispy things.  CONSP is defined if lisp.h
    has been included before this file.  */
 #ifdef CONSP
 
@@ -252,10 +258,11 @@ enum event_kind
                                   the wheel event occurred in.
                                   .timestamp gives a timestamp (in
                                   milliseconds) for the event.  */
-#ifdef WINDOWSNT
-  LANGUAGE_CHANGE_EVENT,       /* A LANGUAGE_CHANGE_EVENT is generated
-                                  on WINDOWSNT when the keyboard layout
-                                  or input language is changed by the
+#if defined (WINDOWSNT) || defined (MAC_OS)
+  LANGUAGE_CHANGE_EVENT,       /* A LANGUAGE_CHANGE_EVENT is
+                                  generated on WINDOWSNT or Mac OS
+                                  when the keyboard layout or input
+                                  language is changed by the
                                   user.  */
 #endif
   SCROLL_BAR_CLICK_EVENT,      /* .code gives the number of the mouse button
@@ -276,7 +283,7 @@ enum event_kind
                                   by MS-Windows scroll bar controls. */
 #endif
   SELECTION_REQUEST_EVENT,     /* Another X client wants a selection from us.
-                                  See `struct selection_event'.  */
+                                  See `struct selection_input_event'.  */
   SELECTION_CLEAR_EVENT,       /* Another X client cleared our selection.  */
   BUFFER_SWITCH_EVENT,         /* A process filter has switched buffers.  */
   DELETE_WINDOW_EVENT,         /* An X client said "delete this window".  */
@@ -291,14 +298,14 @@ enum event_kind
   DRAG_N_DROP_EVENT,           /* A drag-n-drop event is generated when
                                   files selected outside of Emacs are dropped
                                   onto an Emacs window.
-                                  Currently used only on Windows NT.
                                   .modifiers holds the state of the
                                   modifier keys.
                                   .x and .y give the mouse position,
                                   in characters, within the window.
-                                  .frame_or_window is a cons of the frame
-                                  in which the drop was made and a list of
-                                  the filenames of the dropped files.
+                                  .frame_or_window is the frame in
+                                  which the drop was made.
+                                  .arg is a platform-dependent
+                                  representation of the dropped items.
                                   .timestamp gives a timestamp (in
                                   milliseconds) for the click.  */
   USER_SIGNAL_EVENT,           /* A user signal.
@@ -324,12 +331,22 @@ enum event_kind
 
   /* Queued from XTread_socket when session manager sends
      save yourself before shutdown. */
-  SAVE_SESSION_EVENT
+  SAVE_SESSION_EVENT,
+
+#ifdef MAC_OS
+  /* 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 `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
 };
 
 /* If a struct input_event has a kind which is SELECTION_REQUEST_EVENT
    or SELECTION_CLEAR_EVENT, then its contents are really described
-   by `struct selection_event'; see xterm.h.  */
+   by `struct selection_input_event'; see xterm.h.  */
 
 /* The keyboard input buffer is an array of these structures.  Each one
    represents some sort of input event - a keystroke, a mouse click, or
@@ -355,7 +372,7 @@ struct input_event
   unsigned long timestamp;
 
   /* This is padding just to put the frame_or_window field
-     past the size of struct selection_event.  */
+     past the size of struct selection_input_event.  */
   int *padding[2];
 
   /* This field is copied into a vector while the event is in the queue,