Tk::Reindex - change the base index of Text-like widgets
Contents
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.
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.
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.
Name
Tk::Reindex - change the base index of Text-like widgets
Standard Options
The newly-defined widget takes all the same options as the base widget, which defaults to Text.
Synopsis
use Tk::ReindexedText;
$t1=$w->ReindexedText(-linestart => 2);
use Tk::ReindexedROText;
$t2=$w->ReindexedROText(-linestart => 0);
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: toIndexCmdfromIndexCmd
-item Class: ToIndexCmdFromIndexCmd
-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.
