---
name: "GeomReq"
section: "2"
platform: "linux"
package: "perl-tk"
version: "b11.02-5"
release: "Debian 1.3 (Bo)"
platforms: ["linux"]
url: "https://new.carta.tech/GeomReq"
---

# GeomReq(2)

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

Window for which geometry is being requested. Desired width for *tkwin*, in pixel units. Desired height for *tkwin*, in pixel units. 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
