Reindex(3pm)
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.