Reindex(3) perl/Tk Documentation Reindex(3)

# [NAME](#NAME)

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

# [SYNOPSIS](#SYNOPSIS)

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

# [DESCRIPTION](#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](#STANDARD_OPTIONS)

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

# [WIDGET-SPECIFIC OPTIONS](#WIDGET)

[Name: **lineStart**](#Name:)

[Class: **LineStart**](#Class:)

[Switch: **-linestart**](#Switch:)

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](#CLASS_METHODS)

[import](#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](#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](#AUTHOR)

Andrew Allen &lt;ada@fc.hp.com&gt;

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

2026-10-26 Tk1.1

---

Document: Tk::Reindex(3pm) from perl-tk 804.036-r13 (Chainguard OS)
Source: https://github.com/eserte/perl-tk
