ntextIndent man page on MacOSX

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
MacOSX logo
[printable version]

ntextIndent(n)	     ntext Indentation for the Text Widget	ntextIndent(n)

______________________________________________________________________________

NAME
       ntextIndent - ntext Indentation for the Text Widget

SYNOPSIS
       package require Tcl  8.5

       package require Tk  8.5

       package require ntext  ?0.81?

_________________________________________________________________

DESCRIPTION
       The  ntext  package  provides a binding tag named Ntext for use by text
       widgets in place of the default Text binding tag.

       Tk's text widget may be configured to  wrap  lines  of  text  that  are
       longer than the width of the text area, a feature that is familiar from
       text editors and word processors.  A complete line of  text  (delimited
       by  newlines,  or  by the beginning or end of the document) is called a
       "logical line".	When a logical line is wrapped onto more than one line
       of  the	display	 area,	these fragments of the logical line are called
       "display lines".

       If a logical line begins with whitespace, then  wrapped	display	 lines
       begin  further  to the left than the first display line, which can make
       the text layout untidy and difficult to read.  The  Ntext  binding  tag
       provides facilities so that a text widget in -wrap word mode will auto‐
       matically indent display lines (other than the first) to match the ini‐
       tial whitespace of the first display line.

       This indentation is available to text widgets only in -wrap word mode.

CONFIGURATION OPTIONS
       The behavior of Ntext may be configured application-wide by setting the
       values of a number of namespace variables:

       ::ntext::classicWrap

       ·      0 - selects Ntext behaviour, i.e. display lines are indented  to
	      match the initial whitespace of the first display line of a log‐
	      ical line.

	      No other action is required if this option, and  the  text  wid‐
	      get's  -wrap  option,  are set before any text is entered in the
	      widget, and if text is entered and edited only by the mouse  and
	      keyboard.	 If, instead, text is manipulated by the script, or if
	      the text widget's -wrap option or the  value  of	::ntext::clas‐
	      sicWrap  are  changed while the widget holds text, then calls to
	      ntext functions are needed to alter the  indentation.   See  the
	      section INDENTING DISPLAY LINES for detailed instructions.

       ·      1	 -  (default  value)  selects  classic Text behaviour, i.e. no
	      indentation.

       Advanced Use

       ::ntext::newWrapRegexp

       ·      the value is a regexp pattern that determines the character of a
	      logical line to which display lines other than the first will be
	      aligned.	The default  value,  [^[:space:]],  ensures  alignment
	      with the first non-whitespace character.

INDENTING DISPLAY LINES
       To use Ntext 's display line indentation:

       [1]    Set the variable ::ntext::classicWrap to 0 (default value is 1).
	      This enables bindings that will  preserve	 indentation  whenever
	      the  user	 modifies  the	widget contents using the keyboard and
	      mouse.  If the widget already holds text, call  ::ntext::wrapIn‐
	      dent to initialise indentation.

	      Further  instructions  apply if the program changes the widget's
	      contents, wrap configuration, or indent configuration.

       [2]    The program can change the text  contents,  e.g.	by  the	 .text
	      insert  command.	 Such a change does not trigger a window bind‐
	      ing,  so	 the   program	 should	  explicitly   call   function
	      ::ntext::wrapIndent after inserting text.

       [3]    Auto-indentation	occurs	only  if  the  widget is in -wrap word
	      mode.  If the program changes to or from	-wrap  word  when  the
	      widget  is not empty, it should call ::ntext::wrapIndent to for‐
	      mat the widget's text.

       [4]    If indentation  is  used,	 and  then  switched  off  by  setting
	      ::ntext::classicWrap  to	1,  call ::ntext::wrapIndent to remove
	      indentation.

FUNCTIONS
       ::ntext::wrapIndent textWidget ?index1? ?index2?

       ·      Adjust the indentation of a text widget.	 Different  cases  are
	      discussed below.

       ::ntext::wrapIndent textWidget

       ·      Adjust  the  indentation of all the text in text widget textWid‐
	      get.

       ::ntext::wrapIndent textWidget index1

       ·      Adjust the indentation of a single logical line of a text widget
	      - the line of textWidget that contains the index index1.

       ::ntext::wrapIndent textWidget index1 index2

       ·      Adjust  the  indentation	of  a range of logical lines of a text
	      widget - the lines of textWidget that contain indices index1  to
	      index2.

       Usage

       ·      ::ntext::wrapIndent  should be called only if the script changes
	      the widget's contents or display properties.  If the contents of
	      the  widget  have	 been modified by the keyboard or mouse, it is
	      not necessary for the script to call ::ntext::wrapIndent because
	      the  appropriate calls are made automatically by the Ntext bind‐
	      ings.

       ·      The script should	 normally  call	 ::ntext::wrapIndent  if,  for
	      example, the script changes one of the following when the widget
	      is not empty: the value of ::ntext::classicWrap, or the widget's
	      -wrap  status, or the widget's tab spacing, or the font size, or
	      the widget's contents.

       ·      A call of the form ::ntext::wrapIndent  textWidget  will	always
	      suffice,	but if changes are needed only to certain lines, it is
	      more efficient to specify those lines with  the  optional	 argu‐
	      ments ?index1?, ?index2?.

       ·      If the widget is in -word wrap mode, and if ::ntext::classicWrap
	      is set to 0, ::ntext::wrapIndent will apply indentation  to  the
	      logical lines within the range specified by the function's argu‐
	      ments.

       ·      In other cases, i.e. if the widget is in	-word  char  or	 -word
	      none   mode,   or	  if   ::ntext::classicWrap   is   set	to  1,
	      ::ntext::wrapIndent will remove the indentation of  the  logical
	      lines within the range specified by the function's arguments.

EXAMPLES
       To switch on Ntext 's indentation and use it in widget .t:

       package require ntext
       set ::ntext::classicWrap 0
       text .t -wrap word
       bindtags .t {.t Ntext . all}

       To decide later to switch off Ntext 's indentation:

       set ::ntext::classicWrap 1
       ::ntext::wrapIndent .t

       To decide later to switch Ntext 's indentation back on:

       set ::ntext::classicWrap 0
       ::ntext::wrapIndent .t 1.0 end

       To inject some text into the widget:

       set foo [.t index end]
       ::ntext::wrapIndent .t $foo end

       To switch to -wrap char mode:

       ::ntext::wrapIndent .t

SEE ALSO
       bindtags, ntext, re_syntax, regexp, text

KEYWORDS
       bindtags, re_syntax, regexp, text

ntext				     0.81			ntextIndent(n)
[top]

List of man pages available for MacOSX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net