---
name: "glutMouseFunc"
section: "3xglut"
platform: "linux"
package: "glut-doc"
version: "3.7-14"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/glutMouseFunc/3xglut"
---

# glutMouseFunc(3xglut)

sets the mouse callback for the current window.

## NAME

glutMouseFunc - sets the mouse callback for the current window.

## SYNTAX

```

```

void glutMouseFunc(void (\*func)(int button, int state,\
                    int x, int y));

## ARGUMENTS

- *func*

  The new mouse callback function.

## DESCRIPTION

glutMouseFunc sets the mouse callback for the current window. When a user presses and releases mouse buttons in the window, each press and each release generates a mouse callback. The button parameter is one of GLUT\_LEFT\_BUTTON, GLUT\_MIDDLE\_BUTTON, or GLUT\_RIGHT\_BUTTON. For systems with only two mouse buttons, it may not be possible to generate GLUT\_MIDDLE\_BUTTON callback. For systems with a single mouse button, it may be possible to generate only a GLUT\_LEFT\_BUTTON callback. The state parameter is either GLUT\_UP or GLUT\_DOWN indicating whether the callback was due to a release or press respectively. The x and y callback parameters indicate the window relative coordinates when the mouse button state changed. If a GLUT\_DOWN callback for a specific button is triggered, the program can assume a GLUT\_UP callback for the same button will be generated (assuming the window still has a mouse callback registered) when the mouse button is released even if the mouse has moved outside the window.

If a menu is attached to a button for a window, mouse callbacks will not be generated for that button.

During a mouse callback, glutGetModifiers may be called to determine the state of modifier keys when the mouse event generating the callback occurred.

Passing NULL to glutMouseFunc disables the generation of mouse callbacks.

## SEE ALSO

glutKeyboardFunc, glutMotionFunc, glutSpaceballButtonFunc, glutButtonBoxFunc, glutTabletButtonFunc, glutGetModifiers

## AUTHOR

Mark J. Kilgard (mjk@nvidia.com)
