jtextcmds.tcl
The
jtextcmds.tcl library is distributed as part of the
jstools package. It provides userlevel command procedures (in the
sense of
jcommand.tcl) for working with text widgets that are likely to be useful across
applications. It depends on the
jtext.tcl library, and supports (but does not require) the
jtexttags.tcl library. Currently, it provides Cut, Copy, and Paste commands.
In the future I hope for it to provide Undo and Redo commands
and text formatting commands as well.
This document describes
jtextcmds.tcl version 4.1/4.4.
Accessing the Library
In order to use the
jtextcmds.tcl library, it (and any other libraries it depends on) must be
in your Tcl
auto_path, described in
tclvars(n). Information about how to arrange that, and other conventions
common to
the
jstools libraries, is in
the
Usage section of
The jstools Libraries.
Author
Jay Sekora
js@aq.org
http://www.aq.org/~js/
Copyright
The library is copyright © 1992-1995 by Jay Sekora, but may be
freely redistributed under the conditions at the top of the file.
Procedures
j:cmd:text_cut - delete selected text and save it in a cut buffer
j:cmd:text_copy - save selected text in a cut buffer without deleting it
j:cmd:text_paste - paste previously cut or copied text into text widget
See Also
jtext.tcl
jtexttags.tcl
Usage
j:cmd:text_cut
w
args
Arguments
w is the text widget to cut text from
Any additional
args are ignored
Description
This procedure deletes any selected text from the text widget
w and stores it in a global variable so it can later be pasted.
If
w is a richtext widget (i.e., it's using the
jtexttags.tcl library for tag maintenance), then the tags associated with
the selected text are also saved, so they can be restored when
the text is later pasted.
The cut text (and tags, if applicable) will be saved to disk if
possible (specifically, if the files
~/.tk/cut_text and
~/.tk/cut_richtext can be written to) so that cut text can be pasted into an application
running as a separate process. (This also means that cut text
is preserved across invocations of
jedit; i.e., you can cut some text, quit
jedit, start it again, and paste the text cut in the previous session.)
Usage
j:cmd:text_copy
w
args
Arguments
w is the text widget to cut text from
Any additional
args are ignored
Description
This procedure copies any selected text in text widget
w into a global variable so it can later be pasted. If
w is a richtext widget (i.e., it's using the
jtexttags.tcl library for tag maintenance), then the tags associated with
the selected text are also saved, so they can be restored when
the text is later pasted.
The copied text (and tags, if applicable) will be saved to disk
if possible (specifically, if the files
~/.tk/cut_text and
~/.tk/cut_richtext can be written to) so that copied text can be pasted into an
application running as a separate process.
Usage
j:cmd:text_paste
w
args
Arguments
w is the text widget to paste text into
Any additional
args are ignored
Description
This procedure inserts previously cut or copied text into text
widget
w. If
J_PREFS(typeover) is true, than the existing selection in
w, if any, will first be deleted if the insert point is in or adjacent
to the selection. If
w is a richtext widget (i.e., it's using the
jtexttags.tcl library for tag maintenance), then the tags associated with
the selected text will also be restored.
The pasted text (and tags, if applicable) will be read to disk
if possible (specifically, if the files
~/.tk/cut_text and
~/.tk/cut_richtext exist and are readable) so that text cut or copied in a separate
application can be pasted. Otherwise, applicationspecific
global variables are used.
Bugs and Misfeatures
* Cutting or copying rich text can be hideously slow, since the
text is examined for tags characterbycharacter. Now that
Tk4.1 provides the
text dump command, this could be speeded up considerably.