TERMKEY\_INTERPRET\_MOUSE(3) Library Functions Manual TERMKEY\_INTERPRET\_MOUSE(3)

# [NAME](#NAME)

termkey\_interpret\_mouse - interpret opaque mouse event data

# [SYNOPSIS](#SYNOPSIS)

```
#include <termkey.h>

TermKeyResult termkey_interpret_mouse(TermKey *tk, const TermKeyKey *key, 
    TermKeyMouseEvent *ev, int *button, int *line, int *col);
```

Link with *-ltermkey*.

# [DESCRIPTION](#DESCRIPTION)

**termkey\_interpret\_mouse**() fills in variables in the passed pointers according to the mouse event found in *key*. It should be called if [**termkey\_getkey**(3)](/man/os/libtermkey/termkey_getkey.3) or similar have returned a key event with the type of **TERMKEY\_TYPE\_MOUSE**.

Any pointer may instead be given as **NULL** to not return that value.

The *ev* variable will take one of the following values:

[**TERMKEY\_MOUSE\_UNKNOWN**](#TERMKEY_MOUSE_UNKNOWN)

an unknown mouse event.

[**TERMKEY\_MOUSE\_PRESS**](#TERMKEY_MOUSE_PRESS)

a mouse button was pressed; *button* will contain its number.

[**TERMKEY\_MOUSE\_DRAG**](#TERMKEY_MOUSE_DRAG)

the mouse was moved while holding a button; *button* will contain its number.

[**TERMKEY\_MOUSE\_RELEASE**](#TERMKEY_MOUSE_RELEASE)

a mouse button was released, or the mouse was moved while no button was pressed. If known, *button* will contain the number of the button released. Not all terminals can report this, so it may be 0 instead.

The *line* and *col* variables will be filled in with the mouse position, indexed from 1. Note that due to the limited number of bytes in the **TermKeyKey** structure, the line and column numbers are limited to 2047 and 4095 respectively.

# [RETURN VALUE](#RETURN_VALUE)

If passed a *key* event of the type **TERMKEY\_TYPE\_MOUSE**, this function will return **TERMKEY\_RES\_KEY** and will affect the variables whose pointers were passed in, as described above.

For other event types it will return **TERMKEY\_RES\_NONE**, and its effects on any variables whose pointers were passed in, are undefined.

# [SEE ALSO](#SEE_ALSO)

[**termkey\_waitkey**(3)](/man/os/libtermkey/termkey_waitkey.3), [**termkey\_getkey**(3)](/man/os/libtermkey/termkey_getkey.3), [**termkey**(7)](/man/os/libtermkey/termkey.7)

---

Document: termkey_interpret_mouse(3) from libtermkey 0.22-r8 (Chainguard OS)
