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

- NAME
- SYNOPSIS
- DESCRIPTION
- STANDARD OPTIONS
- WIDGET-SPECIFIC OPTIONS
- CLASS METHODS
- BUGS
- AUTHOR

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

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