---
name: "ManageGeom"
section: "3"
platform: "macos"
package: "tcl"
version: "152"
release: "macOS 26.5"
platforms: ["macos"]
url: "https://new.carta.tech/ManageGeom/3"
---

# ManageGeom(3)

arrange to handle geometry requests for a window

## NAME

Tk\_ManageGeometry - arrange to handle geometry requests for a window

## SYNOPSIS

```
#include <tk.h>

Tk_ManageGeometry(tkwin, mgrPtr, clientData)
```

## ARGUMENTS

Token for window to be managed. Pointer to data structure containing information about the geometry manager, or NULL to indicate that *tkwin*'s geometry should not be managed anymore. The data structure pointed to by *mgrPtr* must be static: Tk keeps a reference to it as long as the window is managed. Arbitrary one-word value to pass to geometry manager callbacks.

## DESCRIPTION

**Tk\_ManageGeometry** arranges for a particular geometry manager, described by the *mgrPtr* argument, to control the geometry of a particular slave window, given by *tkwin*. If *tkwin* was previously managed by some other geometry manager, the previous manager loses control in favor of the new one. If *mgrPtr* is NULL, geometry management is cancelled for *tkwin*.

The structure pointed to by *mgrPtr* contains information about the geometry manager: typedef struct {\
     const char \**name*;\
     Tk\_GeomRequestProc \**requestProc*;\
     Tk\_GeomLostSlaveProc \**lostSlaveProc*; } Tk\_GeomMgr; The *name* field is the textual name for the geometry manager, such as **pack** or **place**;  this value will be returned by the command **winfo manager**.

*requestProc* is a procedure in the geometry manager that will be invoked whenever **Tk\_GeometryRequest** is called by the slave to change its desired geometry. *requestProc* should have arguments and results that match the type **Tk\_GeomRequestProc**: typedef void Tk\_GeomRequestProc(\
     ClientData *clientData*,\
     Tk\_Window *tkwin*); The parameters to *requestProc* will be identical to the corresponding parameters passed to **Tk\_ManageGeometry**. *clientData* usually points to a data structure containing application-specific information about how to manage *tkwin*'s geometry.

The *lostSlaveProc* field of *mgrPtr* points to another procedure in the geometry manager. Tk will invoke *lostSlaveProc* if some other manager calls **Tk\_ManageGeometry** to claim *tkwin* away from the current geometry manager. *lostSlaveProc* is not invoked if **Tk\_ManageGeometry** is called with a NULL value for *mgrPtr* (presumably the current geometry manager has made this call, so it already knows that the window is no longer managed), nor is it called if *mgrPtr* is the same as the window's current geometry manager. *lostSlaveProc* should have arguments and results that match the following prototype: typedef void Tk\_GeomLostSlaveProc(\
     ClientData *clientData*,\
     Tk\_Window *tkwin*); The parameters to *lostSlaveProc* will be identical to the corresponding parameters passed to **Tk\_ManageGeometry**.

## KEYWORDS

callback, geometry, managed, request, unmanaged
