---
name: "GetAnchor"
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/GetAnchor/3tk"
---

# GetAnchor(3tk)

translate between strings and anchor positions

```

```

## 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)

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.

- 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* doesn't 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* isn't 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* isn't a legal anchor value, then \`\`unknown anchor position'' is returned.

## KEYWORDS

anchor position
