]> code.delx.au - gnu-emacs/blobdiff - src/termhooks.h
(Text): Replace inforef to emacs-xtra by conditional xref's, depending on
[gnu-emacs] / src / termhooks.h
index e2e515707d1be64132c1f99e64e676c73001d4f7..de43d580c9b639bf88b514f72af44e7b89893f1e 100644 (file)
@@ -1,6 +1,7 @@
 /* Hooks by which low level terminal operations
    can be made to call other routines.
-   Copyright (C) 1985, 1986, 1993, 1994 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1986, 1993, 1994, 2002, 2003, 2004,
+                 2005, 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -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.   */
@@ -252,29 +253,11 @@ enum event_kind
                                   the wheel event occurred in.
                                   .timestamp gives a timestamp (in
                                   milliseconds) for the event.  */
-#if defined(MAC_OSX)
-  MOUSE_WHEEL_EVENT,           /* A mouse-wheel event is generated on
-                                  MAC_OSX by a wheel on a mouse
-                                  (e.g., MS Intellimouse).  The event
-                                  contains a delta that corresponds
-                                  to the amount and direction that
-                                  the wheel is rotated.  This delta
-                                  is typically used to implement a
-                                  scroll or zoom.
-                                  .code gives the delta.
-                                  .modifiers holds the state of the
-                                  modifier keys.
-                                  .x and .y give the mouse position,
-                                  in characters, within the window.
-                                  .frame_or_window gives the frame
-                                  the wheel event occurred in.
-                                  .timestamp gives a timestamp (in
-                                  milliseconds) for the wheel event.  */
-#endif
-#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
@@ -295,7 +278,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".  */
@@ -310,14 +293,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.
@@ -343,12 +326,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
@@ -374,7 +367,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,
@@ -390,8 +383,10 @@ struct input_event
   Lisp_Object arg;
 };
 
+#define EVENT_INIT(event) bzero (&(event), sizeof (struct input_event))
+
 /* Called to read input events.  */
-extern int (*read_socket_hook) P_ ((int, struct input_event *, int, int));
+extern int (*read_socket_hook) P_ ((int, int, struct input_event *));
 
 /* Called when a frame's display becomes entirely up to date.  */
 extern void (*frame_up_to_date_hook) P_ ((struct frame *));
@@ -447,3 +442,6 @@ enum {
 };
 
 #endif
+
+/* arch-tag: 33a00ecc-52b5-4186-a410-8801ac9f087d
+   (do not change this comment) */