/* 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,
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. */
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. */
/* 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
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
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". */
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.
/* 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
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,