---
name: "canvas::tag"
section: "3tk"
platform: "linux"
package: "tklib"
version: "0.9-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/canvas::tag"
---

# canvas::tag(3tk)

Easier management of the tags on canvas items or item groups

```

```

## NAME

canvas::tag - Easier management of the tags on canvas items or item groups

## SYNOPSIS

package require **Tcl 8.5**

package require **Tk 8.5**

package require **canvas::tag ?0.1?**

**::canvas::tag** **append** *canvas* *tagOrId* *tag*...

**::canvas::tag** **prepend** *canvas* *tagOrId* *tag*...

**::canvas::tag** **append** *canvas* *tagOrId* *index* *tag*...

**::canvas::tag** **remove** *canvas* *tagOrId* *tag*...

**::canvas::tag** **match** *canvas* *tagOrId* *pattern*

```

```

## DESCRIPTION

This package provides utility commands for easier management of the tag lists associated with canvas items or item groups.

The problem with the existing canvas API is that a tag list can only be set as a whole, making adding and removing of tags from such lists relatively complex operations reading the current tag list, modifying it, and then writing the changed list back.

The commands provided by this package hide all this complexity from the user.

## API

- **::canvas::tag** **append** *canvas* *tagOrId* *tag*...

  This command adds the tags *tag*... to the tag list for the items identified by the *tagOrId* in the *canvas* widget. The new tags are added at the end of the list.

  The result of the command is the empty string.

- **::canvas::tag** **prepend** *canvas* *tagOrId* *tag*...

  This command adds the tags *tag*... to the tag list for the items identified by the *tagOrId* in the *canvas* widget. The new tags are added at the beginning of the list.

  The result of the command is the empty string.

- **::canvas::tag** **append** *canvas* *tagOrId* *index* *tag*...

  This command adds the tags *tag*... to the tag list for the items identified by the *tagOrId* in the *canvas* widget. The new tags are inserted before the element at *index*.

  *index* **0** refers to the beginning of the list.

  *index* **end** refers to after the end of the list.

  The result of the command is the empty string.

- **::canvas::tag** **remove** *canvas* *tagOrId* *tag*...

  This command removes the named tags *tag*... from the tag list for the items identified by the *tagOrId* in the *canvas* widget.

  The result of the command is the empty string.

- **::canvas::tag** **match** *canvas* *tagOrId* *pattern*

  This command finds all tags for the items identified by the *tagOrId* in the *canvas* widget which match the glob *pattern*.

  The result of the command is a list of the matching tags. Which may be empty.

## BUGS, IDEAS, FEEDBACK

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category *canvas* of the *Tklib Trackers* \[http://core.tcl.tk/tklib/reportlist\]. Please also report any ideas for enhancements you may have for either package and/or documentation.

## KEYWORDS

append tag, canvas, insert tag, remove tag, tags
