---
name: "GeomReq"
section: "3tk"
platform: "linux"
package: "tk8.3-doc"
version: "8.3.5-14"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/GeomReq/3tk"
---

# GeomReq(3tk)

specify desired geometry or internal border for a window

```

```

## NAME

Tk\_GeometryRequest, Tk\_SetInternalBorder - specify desired geometry or internal border for a window

## SYNOPSIS

```
#include <tk.h>

Tk_GeometryRequest(tkwin, reqWidth, reqHeight)

Tk_SetInternalBorder(tkwin, width)
```

## ARGUMENTS

- Tk\_Window *tkwin* (in)

  Window for which geometry is being requested.

- int *reqWidth* (in)

  Desired width for *tkwin*, in pixel units.

- int *reqHeight* (in)

  Desired height for *tkwin*, in pixel units.

- int *width* (in)

  Space to leave for internal border for *tkwin*, in pixel units.

  ```

  ```

## DESCRIPTION

**Tk\_GeometryRequest** is called by widget code to indicate its preference for the dimensions of a particular window.  The arguments to **Tk\_GeometryRequest** are made available to the geometry manager for the window, which then decides on the actual geometry for the window.  Although geometry managers generally try to satisfy requests made to **Tk\_GeometryRequest**, there is no guarantee that this will always be possible.  Widget code should not assume that a geometry request will be satisfied until it receives a **ConfigureNotify** event indicating that the geometry change has occurred.  Widget code should never call procedures like **Tk\_ResizeWindow** directly.  Instead, it should invoke **Tk\_GeometryRequest** and leave the final geometry decisions to the geometry manager.

If *tkwin* is a top-level window, then the geometry information will be passed to the window manager using the standard ICCCM protocol.

**Tk\_SetInternalBorder** is called by widget code to indicate that the widget has an internal border.  This means that the widget draws a decorative border inside the window instead of using the standard X borders, which are external to the window's area.  For example, internal borders are used to draw 3-D effects.  *Width* specifies the width of the border in pixels.  Geometry managers will use this information to avoid placing any children of *tkwin* overlapping the outermost *width* pixels of *tkwin*'s area.

The information specified in calls to **Tk\_GeometryRequest** and **Tk\_SetInternalBorder** can be retrieved using the macros **Tk\_ReqWidth**, **Tk\_ReqHeight**, and **Tk\_InternalBorderWidth**. See the **Tk\_WindowId** manual entry for details.

## KEYWORDS

geometry, request
