---
name: "Tk_GetAnchor"
section: "3tk"
platform: "linux"
package: "tk8.6-doc"
version: "8.6.16-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Tk_GetAnchorFromObj/3tk"
---

# Tk\_GetAnchor(3tk)

translate between strings and anchor positions

Part of [Tk\_GetAnchorFromObj(3tk)](/Tk_GetAnchorFromObj/3tk.md).

```

```

## NAME

Tk\_GetAnchorFromObj, Tk\_GetAnchor, Tk\_NameOfAnchor - translate between strings and anchor positions

## SYNOPSIS

```
#include <tk.h>

int
Tk_GetAnchorFromObj(interp, objPtr, anchorPtr)

int
Tk_GetAnchor(interp, string, anchorPtr)

const char *
Tk_NameOfAnchor(anchor)
```

## ARGUMENTS

- Tcl\_Interp *\*interp* (in)

  Interpreter to use for error reporting, or NULL.

- Tcl\_Obj *\*objPtr* (in/out)

  String value contains name of anchor point: “**n**”, “**ne**”, “**e**”, “**se**”, “**s**”, “**sw**”, “**w**”, “**nw**”, or “**center**”; internal rep will be modified to cache corresponding Tk\_Anchor. In the case of “**center**” on input, a non-empty abbreviation of it may also be used on input.

- const char *\*string* (in)

  Same as *objPtr* except description of anchor point is passed as a string.

- int *\*anchorPtr* (out)

  Pointer to location in which to store anchor position corresponding to *objPtr* or *string*.

- Tk\_Anchor *anchor* (in)

  Anchor position, e.g. **TCL\_ANCHOR\_CENTER**.

  ```

  ```

## DESCRIPTION

**Tk\_GetAnchorFromObj** places in *\*anchorPtr* an anchor position (enumerated type **Tk\_Anchor**) corresponding to *objPtr*'s value.  The result will be one of **TK\_ANCHOR\_N**, **TK\_ANCHOR\_NE**, **TK\_ANCHOR\_E**, **TK\_ANCHOR\_SE**, **TK\_ANCHOR\_S**, **TK\_ANCHOR\_SW**, **TK\_ANCHOR\_W**, **TK\_ANCHOR\_NW**, or **TK\_ANCHOR\_CENTER**. Anchor positions are typically used for indicating a point on an object that will be used to position the object, e.g. **TK\_ANCHOR\_N** means position the top center point of the object at a particular place.

Under normal circumstances the return value is **TCL\_OK** and *interp* is unused. If *string* does not contain a valid anchor position or an abbreviation of one of these names, **TCL\_ERROR** is returned, *\*anchorPtr* is unmodified, and an error message is stored in *interp*'s result if *interp* is not NULL. **Tk\_GetAnchorFromObj** caches information about the return value in *objPtr*, which speeds up future calls to **Tk\_GetAnchorFromObj** with the same *objPtr*.

**Tk\_GetAnchor** is identical to **Tk\_GetAnchorFromObj** except that the description of the anchor is specified with a string instead of an object.  This prevents **Tk\_GetAnchor** from caching the return value, so **Tk\_GetAnchor** is less efficient than **Tk\_GetAnchorFromObj**.

**Tk\_NameOfAnchor** is the logical inverse of **Tk\_GetAnchor**. Given an anchor position such as **TK\_ANCHOR\_N** it returns a statically-allocated string corresponding to *anchor*. If *anchor* is not a legal anchor value, then “unknown anchor position” is returned.

## KEYWORDS

anchor position
