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

term::interact::pager - Terminal widget, paging

Bugs, Ideas, Feedback

       This document, and the package it describes, will undoubtedly contain bugs and  other  problems.   Please
       report  such  in the category term of the TcllibTrackers [http://core.tcl.tk/tcllib/reportlist].  Please
       also report any ideas for enhancements you may have for either package and/or documentation.

       When proposing code changes, please provide unifieddiffs, i.e the output of diff-u.

       Note further that attachments are strongly preferred over inlined patches. Attachments  can  be  made  by
       going  to the Edit form of the ticket immediately after its creation, and then using the left-most button
       in the secondary navigation bar.

Category

       Terminal control

Class Api

       The  package  exports  a single command, the class command, enabling the creation of pager instances. Its
       API is:

       term::interact::pagerobjecttext ?options...?
              This command creates a new pager object with the name object,  initializes  it,  and  returns  the
              fully qualified name of the object command as its result.

              The argument is the text to show, possibly followed by configuration options and their values. The
              options are explained in the section Configuration.

Configuration

       A pager instance recognizes the following options:

       -in chan
              Specifies the channel to read character sequences from. Defaults to stdin.

       -out chan
              Specifies the channel to write the pager contents to. Defaults to stdout.

       -column int
              Specifies  the  column  of  the terminal where the left margin of the pager display should appear.
              Defaults to 0, i.e. the left-most column.

       -line int
              Specifies the line of the terminal where the top  margin  of  the  pager  display  should  appear.
              Defaults to 0, i.e. the top-most line.

       -height int
              Specifies the number of lines of text to show at most in the display. Defaults to 25.

       -actions dict
              Specifies a dictionary containing additional actions, using character sequences as keys. Note that
              these sequences cannot override the hardwired sequences described in section Interaction.

Description

       This package provides a class for the creation of a simple paging text display.

Interaction

       A  pager  object recognizes the control sequences listed below and acts as described. The user can supply
       more control sequences to act on via the configuration, but is not able to overide these defaults.

       Cursor Up
              The text is scrolled down a single line, making one more line visible at the top. The  pager  will
              not react if the first line of the text is already shown.

       Cursor Down
              The  text is scrolled up a single line, making one more line visible at the bottom. The pager will
              not react if the last line of the text is already shown.

       Page Up
              The text is scrolled down a page. The pager will not react if  the  first  line  of  the  text  is
              already shown.

       Page Down
              The  text  is scrolled up a page. The pager will not react if the last line of the text is already
              shown.

       Enter/Return
              The interaction with the object is terminated.

Keywords

       control, pager, terminal, text display

Name

       term::interact::pager - Terminal widget, paging

Object Api

       The objects created by the class command provide the methods listed below:

       objectinteract
              Show  the pager in the screen at the configured location and start interacting with it. This opens
              its own event loop for the  processing  of  incoming  characters.  The  method  returns  when  the
              interaction has completed. See section Interaction for a description of the possible interaction.

       objectdone
              This method can be used by user supplied actions to terminate the interaction with the object.

       objectclear
              This method can be used by user supplied actions to remove the pager from the terminal.

       objecttexttext
              This method can be used to change the text shown by the pager.  The pager will reset the dispay to
              show the first line of the text at the top.

       objectconfigureobjectconfigureoptionobjectconfigureoptionvalue...

       objectcgetoption
              Standard methods to retrieve and configure the options of the pager.

Synopsis

       package require Tcl8.59

       package require term::interact::pager?0.2?term::interact::pagerobjecttext ?options...?

       objectinteractobjectdoneobjectclearobjecttexttextobjectconfigureobjectconfigureoptionobjectconfigureoptionvalue...

       objectcgetoption

________________________________________________________________________________________________________________

See Also