reindex(3)

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

Switch: -linestart Sets the line number of the first line in the

Text

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

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" through
out 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.
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout