---
name: "Tk::Reindex"
section: "3pm"
platform: "linux"
package: "perl-tk"
version: "804.036-9"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Tk::Reindex"
---

# Tk::Reindex(3pm)

change the base index of Text-like widgets

## NAME

Tk::Reindex - change the base index of Text-like widgets

## SYNOPSIS

```
    use Tk::ReindexedText;
    $t1=$w->ReindexedText(-linestart => 2);
    use Tk::ReindexedROText;
    $t2=$w->ReindexedROText(-linestart => 0);
```

## DESCRIPTION

Creates a new widget class based on **Text**-like widgets that can redefine the line number base (normally **Text** widgets start line numbers at 1), or possibly other manipulations on indexes.

## STANDARD OPTIONS

The newly-defined widget takes all the same options as the base widget, which defaults to **Text**.

## WIDGET-SPECIFIC OPTIONS

- Name: **lineStart**

  - Class: **LineStart**

  - Switch: **-linestart**

  Sets the line number of the first line in the **Text** widget. The default **-toindexcmd** and **-fromindexcmd** use this configuration option.

  \-item Name:   **toIndexCmd**  **fromIndexCmd**

  \-item Class:  **ToIndexCmd**  **FromIndexCmd**

  \-item Switch: **-toindexcmd** **-fromindexcmd**

  These two options specify callbacks that are called with a list of indexes and are responsible for translating them to/from indexes that the base **Text** widget can understand. The callback is passed the widget followed by a list of indexes, and should return a list of translated indexes. **-toindexcmd** should translate from 'user' indexes to 'native' **Text**-compatible indexes, and **-fromindexcmd** should translate from 'native' indexes to 'user' indexes.

  The default callbacks simply add/subtract the offset given by the **-linestart** option for all indexes in 'line.character' format.

  It would probably be prudent to make these functions inverses of each other.

## CLASS METHODS

- import

  To make new Reindex widgets, this function should be called via **use** with the name of the Text-like base class that you are extending with "Reindex" capability.  'use base(Tk::Reindex Tk::nameofbasewidget)' should also be specified for that widget.

## BUGS

I've used the word "indexes" instead of "indices" throughout the documentation.

All the built-in perl code for widget bindings & methods will use the new 'user' indexes.  Which means all this index manipulation might might break code that is trying to parse/manipulate indexes. Or even assume that '1.0' is the beginning index.  **Tk::Text::Contents** comes to mind.

## AUTHOR

Andrew Allen \<ada@fc.hp.com\>

This code may be distributed under the same conditions as Perl.
