These methods are available only with the Perl/Tk Text widget and are
documented nowhere else but in this book. Another unique feature is
the built-in Menu, activated by a <Button-3>
click, which calls many of these methods for common text-related
activities. The built-in Menu is shown in Figure 8-7.
Figure 8-7. Built-in Menu
To disable the default Menu, use
$text->menu(undef). To supply your own Menu,
first create it and then use
$text->menu(my_menu).
Here, then, is the complete list of extended Text widget methods.
These methods should be considered experimental, so use them with
caution and expect that you may have to change your code in the
future.
$text->adjustSelect
Moves the end point of selection and anchor point to the mouse
pointer location.
$text->clipboardColumnCopy
Performs a rectangular copy of the currently selected text, with
basic compensation for tab characters.
$text->clipboardColumnCut
Performs a rectangular cut of the currently selected text, with basic
compensation for tab characters.
$text->clipboardColumnPaste
Performs a rectangular paste of the text in the clipboard. The
upper-left corner is specified by the current position of the
insert mark, with basic compensation for tab
characters.
$text->deleteSelected
Deletes the currently selected text.
$text->DeleteTextTaggedWith(tag)
Deletes the text tagged with the tag
parameter.
$text->deleteToEndofLine
Deletes from the insert mark location to end of
line.
$text->FindAll(mode,case,pattern)
First removes any current selections, then performs a global text
search, tagging all matches with the sel tag.
mode can be -exact or
-regexp, and case can
be -nocase or -case.
pattern is an exact string to match if
mode is -exact or a
regular expression if the match mode is
-regexp.
$text->FindAndReplaceAll(mode,case,find,replace)
Works just like FindAll, but additionally
substitutes the matched text with the characters
replace.
$text->FindAndReplacePopUp
Creates a find-and-replace popup if one doesn't already exist.
If there is text currently selected, pre-fills the "find"
field with it.
$text->FindNext(direction,mode,case,pattern)
First removes any current selections, then performs a forward or
reverse text search, tagging a match with the sel
tag. direction can be
-forward or -reverse.
mode, case, and
pattern are as for
FindAll.
$text->FindPopUp
Creates a find popup, if one doesn't already exist. If there is
text currently selected, pre-fills the "find" field with
it.
$text->FindSelectionNext
Gets the currently selected text and removes all selections. It then
finds the next exact, case-sensitive string that matches in a forward
direction, selects the new text, and makes it visible.
$text->FindSelectionPrevious
Gets the currently selected text and removes all selections. It then
finds the next exact, case-sensitive string that matches in a reverse
direction, selects the new text, and makes it visible.
$text->getSelected
Returns the currently selected text.
$text->GetTextTaggedWith(tag)
Returns the text tagged with the tag
parameter.
$text->GotoLineNumber(line_number)
Sets the insert mark to line_number and
displays the line.
$text->GotoLineNumberPopUp
Displays a popup, pre-filling it with selected numeric text, if any,
or the line number from GotoLineNumber, if any.
$text->Insert(string)
Inserts string at the point of the
insertion cursor. If there is a selection in the text, and it covers
the point of the insertion cursor, delete the selection before
inserting.
$text->InsertKeypress(character)
Inserts character at the
insert mark. If in overstrike mode, delete the
character at the insert mark first.
$text->InsertSelection
Inserts the current selection at the insert mark.
$text->insertTab
Inserts a tab (\t) character at the
insert mark.
$text->markExists(markname)
Returns true if markname exists.
$text->menu(?menu?)
Returns the Text widget's Menu reference if
menu is omitted, disables the Menu if
menu is undef, or
changes the Menu if menu is another Menu
reference.
$text->openLine
Inserts a newline (\n) at the
insert mark.
$text->OverstrikeMode(?boolean?)
Returns the overstrike mode if boolean is
omitted or sets the overstrike mode to
boolean. True means overstrike mode is
enabled.
$text->PostPopupMenu(x, y)
Creates a popup Menu at the specified (x, y) pixel coordinates. The
default Menu has File, Edit, Search, and View menu items that cascade
to submenus for further commands. There is an implicit
<Button-3> binding to this method that posts
the Menu over the cursor.
$text->ResetAnchor
Sets the selection anchor to whichever end is farthest from the index
argument.
$text->selectAll
Selects all the text in the widget.
$text->selectLine
Selects the line with the insert mark.
$text->selectWord
Selects the word with the insert mark.
$text->SetCursor(position)
Moves the insert mark to
position.
$text->ToggleInsertMode
Toggles the current overstrike mode.
$text->unselectAll
Unselects all the text in the widget.
$text->WhatLineNumberPopUp
Creates a popup that displays the current line number of the
insert mark.
For a demonstration of these extended Text widget features, run the
widget demonstration "Gedi master advanced text
editor"[18] from the "User Contributed Demonstrations"
section of the program.
[18] Yes, that's "Gedi,"
not "Jedi" (with apologies to George Lucas).