Reindex(3pm) | perl/Tk Documentation | Reindex(3pm) |
Tk::Reindex - change the base index of Text-like widgets
use Tk::ReindexedText; $t1=$w->ReindexedText(-linestart => 2); use Tk::ReindexedROText; $t2=$w->ReindexedROText(-linestart => 0);
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.
The newly-defined widget takes all the same options as the base widget, which defaults to Text.
-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.
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.
Andrew Allen <ada@fc.hp.com>
This code may be distributed under the same conditions as Perl.
2018-11-01 | Tk1.1 |