---
name: "menu_format"
section: "3x"
platform: "macos"
package: "ncurses"
version: "79"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/menu_format/3x"
---

# menu\_format(3x)

set and get menu sizes

## NAME

**menu\_format** - set and get menu sizes

## SYNOPSIS

**#include \<menu.h\>**\
 int set\_menu\_format(MENU \*menu, int rows, int cols);\
 void menu\_format(const MENU \*menu, int \*rows, int \*cols);\

## DESCRIPTION

The function **set\_menu\_format** sets the maximum display size of the given menu.  If this size is too small to display all menu items, the menu will be made scrollable. If this size is larger than the menus subwindow and the subwindow is too small to display all menu items, **post\_menu()** will fail.

The default format is 16 rows, 1 column.  Calling **set\_menu\_format** with a null menu pointer will change this default.  A zero row or column argument to **set\_menu\_format** is interpreted as a request not to change the current value.

The function **menu\_format** returns the maximum-size constraints for the given menu into the storage addressed by **rows** and **cols**.

## RETURN VALUE

These routines returns one of the following:

- **E\_OK**

  The routine succeeded.

- **E\_SYSTEM\_ERROR**

  System error occurred (see **errno**).

- **E\_BAD\_ARGUMENT**

  Routine detected an incorrect or out-of-range argument.

- **E\_POSTED**

  The menu is already posted.

- **E\_NOT\_CONNECTED**

  No items are connected to the menu.

## SEE ALSO

**curses**(3X), **menu**(3X).

## NOTES

The header file **\<menu.h\>** automatically includes the header file **\<curses.h\>**.

## PORTABILITY

These routines emulate the System V menu library.  They were not supported on Version 7 or BSD versions.

## AUTHORS

Juergen Pfeifer.  Manual pages and adaptation for new curses by Eric S. Raymond.
