logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Author

       Andrew Allen <ada@fc.hp.com>

       This code may be distributed under the same conditions as Perl.

Tk1.1                                              2025-04-13                                       Reindex(3pm)

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.

See Also