When the user presses a mouse button and releases it at the same location, that generates a click event. All mouse click event share the same format:
(event-type position click-count)
mouse-1, mouse-2, …, where the
buttons are numbered left to right.
You can also use prefixes ‘A-’, ‘C-’, ‘H-’, ‘M-’, ‘S-’ and ‘s-’ for modifiers alt, control, hyper, meta, shift and super, just as you would with function keys.
This symbol also serves as the event type of the event. Key bindings
describe events by their types; thus, if there is a key binding for
mouse-1, that binding would apply to all events whose
event-type is mouse-1.
For mouse click events in the text area, mode line, header line, or in the marginal areas, position has this form:
(window pos-or-area (x . y) timestamp
object text-pos (col . row)
image (dx . dy) (width . height))
mode-line,
header-line, vertical-line, left-margin,
right-margin, left-fringe, or right-fringe.
In one special case, pos-or-area is a list containing a symbol (one
of the symbols listed above) instead of just the symbol. This happens
after the imaginary prefix keys for the event are inserted into the
input stream. See Key Sequence Input.
(0 . 0).
For the mode or header line, y does not have meaningful data.
For the vertical line, x does not have meaningful data.
nil if there is no string property, or it has the form
(string . string-pos) when there is a string-type text
property at the click position.
nil if there is no image at the position clicked on, or it is
an image object as returned by find-image if click was in an image.
(0 . 0). If
object is nil, the coordinates are relative to the top
left corner of the character glyph clicked on.
nil, those of the character glyph clicked on.
For mouse clicks on a scroll-bar, position has this form:
(window area (portion . whole) timestamp part)
vertical-scroll-bar or horizontal-scroll-bar.
above-handle, handle, below-handle,
up, down, top, bottom, and end-scroll.