This is Info file pm.info, produced by Makeinfo version 1.68 from the input file bigpm.texi.  File: pm.info, Node: Tk/Pixmap, Next: Tk/Pod, Prev: Tk/Photo, Up: Module List Create color images from XPM files. *********************************** NAME ==== Tk::Pixmap - Create color images from XPM files. $widget->Pixmap?(name?,options?)? DESCRIPTION =========== XPM is a popular X Window image file format for storing color icons. The Pixmap image type can be used to create color images using XPM files. Pixmaps support the following options: *-data* => string Specifies the contents of the source pixmap as a string. The string must adhere to the XPM file format (e.g., as generated by the *pixmap(1)* program). If both the *-data* and *-file* options are specified, the *-data* option takes precedence. Please note that the XPM file parsing code in the xpm library is somewhat fragile. The first line of the string must be "*/* XPM* */" or otherwise a segmatation fault will be caused. *-file* => name name gives the name of a file whose contents define the source pixmap. The file must adhere to the XPM file format (e.g., as generated by the *pixmap(1)* program). IMAGE METHODS ============= When a pixmap image is created, Tk also creates a new object. This object supports the configure and cget methods described in *Note Tk/options: Tk/options, which can be used to enquire and modify the options described above. SEE ALSO ======== `Tk::Image|Tk::Image' in this node KEYWORDS ======== pixmap, image, tix  File: pm.info, Node: Tk/Pod, Next: Tk/Pod/Search, Prev: Tk/Pixmap, Up: Module List POD browser toplevel widget *************************** NAME ==== Tk::Pod - POD browser toplevel widget SYNOPSIS ======== use Tk::Pod Tk::Pod->Dir(@dirs) # add dirs to search path for POD $pod = $parent->Pod( -file = > $name # search and display POD for name ); DESCRIPTION =========== Simple POD browser with hypertext capabilities in a Toplevel widget SEE ALSO ======== `Tk::Pod_usage|Tk::Pod_usage' in this node `Tk::Pod::Text|Tk::Pod::Text' in this node `tkpod|tkpod' in this node `perlpod|perlpod' in this node AUTHOR ====== Nick Ing-Simmons <`nick@ni-s.u-net.com'> Code currently maintained by Achim Bohnet <`ach@mpe.mpg.de'>. Please send bug reports to <`ptk@lists.stanford.edu'>. Copyright (c) 1997-1998 Nick Ing-Simmons. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.  File: pm.info, Node: Tk/Pod/Search, Next: Tk/Pod/Search_db, Prev: Tk/Pod, Up: Module List Widget to access perlindex POD full text index ********************************************** NAME ==== Tk::Pod::Search - Widget to access perlindex POD full text index use Tk::Pod::Search; ... $widget = $parent->PodSearch( ... ); ... $widget->configure( -search => WORDS_TO_SEARCH ); DESCRIPTION =========== GUI interface to the full POD text indexer *perlindex*. OPTIONS ======= Class: Search Member: search Option: -search Expects a list of words (or a whitespace seperated list). Class: undef Member: undef Option: -command Defines a call back that is called when the use selects a POD file. It gets the full path name of the POD file as argument. METHODS ======= $widget->*method1**(...,?...?)* SEE ALSO ======== Tk::Pod::Text, tkpod, perlindex, Tk::Pod, Tk::Parse, Tk::Pod::Search_db KEYWORDS ======== widget, tk, pod, search, full text AUTHOR ====== Achim Bohnet <`ach@mpe.mpg.de'> Copyright (c) 1997-1998 Achim Bohnet. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.  File: pm.info, Node: Tk/Pod/Search_db, Next: Tk/Pod/Text, Prev: Tk/Pod/Search, Up: Module List dirty OO wrapper for `perlindex''s search functionality ******************************************************* NAME ==== Tk::Pod::Search_db - dirty OO wrapper for `perlindex''s search functionality SYNOPSIS ======== ** THIS IS ALPHA SOFTWARE everything may and should change ** ** stuff here is more a scratch pad than docomentation! ** use Tk::Pod::Search_db; ... $idx = Tk::Pod::Search_db->new?(INDEXDIR)?; ... @hits = $idx->searchWords(WORD1,...); # @hits is a list of # relpath1,score1,... where # score is increasing $prefix = $idx->prefix(); @word = Tk::Pod::Search_db::normalize(STRING1,...); DESCRIPTION =========== Module to search POD documentation. Before you can use the module one should create the indices with Cnew(INDEXDIR) Interface may change to support options like -maxhits $idx->seachWords(WORD1?,...?) search for WORD(s). Return a list of relpath1, score1, relpath2, score2, ... or empty list if no match is found. $pathprefix = $idx->pathprefix() The return path prefix and `$relpath' give together the full path name of the POD documentation. $fullpath = $patchprefix . '/' . $relpath Note: Should make it easy to use Tk::Pod::Search with perlindex but index specific prefix handling is a mess up to know. SEE ALSO ======== tkpod, perlindex perlpod, Tk::Pod::Search AUTHORS ======= Achim Bohnet <`ach@mpe.mpg.de'> Most of the code here is borrowed from `perlindex' in this node written by Ulrich Pfeifer <`Ulrich.Pfeifer@de.uu.net'>. Copyright (c) 1997-1998 Achim Bohnet. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.  File: pm.info, Node: Tk/Pod/Text, Next: Tk/Pod_usage, Prev: Tk/Pod/Search_db, Up: Module List POD browser widget ****************** NAME ==== Tk::Pod::Text - POD browser widget SYNOPSIS ======== use Tk::Pod::Text; $pod = $parent->PodText( -file => ? -scrollbars => ? ); $file = $pod->cget('-path'); # ?? the name path is confusing :-( DESCRIPTION =========== *Tk::Pod::Text* is a readonly text widget that can display POD documentation. SEE ALSO ======== `Tk::More|Tk::More' in this node `Tk::Pod|Tk::Pod' in this node `perlpod|perlpod' in this node `tkpod|tkpod' in this node `perlindex|perlindex' in this node KNOWN BUGS ========== See TODO files of Tk-Pod distribution POD TO VERIFY *PodText* WIDGET ============================== For *PodText* see *Note Tk/Pod/Text: Tk/Pod/Text,. A `fixed width' font. Text in *slant italics*. A <=for> paragraph is hidden between here A file: `/usr/local/bin/perl'. A variable $a without markup. boofar is in S<>. German Umlaute: auml: E, Auml: E, ouml: E, Ouml: E, Uuml: E, Uuml: E, sz: E. Pod with Umlaut: *Note ExtUtils/MakeMaker: ExtUtils/MakeMaker, and ExtUtils::MakeMaker. Details: *Note Perlpod: (perl.info)perlpod, or perl, perlfunc. Here some code in a as is paragraph use Tk; my $mw = MainWindow->new; ... MainLoop __END__ Fonts: sanserif, fixed, bold, *italics*, normal, or file `/path/to/a/file' Mixed Fonts: *bold-sanserif*, *`bold-fixed'*, **bold-italics** Other POD docu: Tk::Font, Tk::BrowseEntry AUTHOR ====== Nick Ing-Simmons <`nick@ni-s.u-net.com'> Code currently maintained by Achim Bohnet <`ach@mpe.mpg.de'>. Please send bug reports to <`ptk@lists.stanford.edu'>. Copyright (c) 1998 Nick Ing-Simmons. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.  File: pm.info, Node: Tk/Pod_usage, Next: Tk/PopEntry, Prev: Tk/Pod/Text, Up: Module List How to use the perl/Tk POD browser widget ***************************************** NAME ==== Tk::Pod_usage - How to use the perl/Tk POD browser widget DESCRIPTION =========== To navigate through the documentation one could use Hyperlinks ---------- A *click* on a hyperlink display the corresponding documentation (if there is any) in the same window. With the documentation is loaded into a new window ( works also for those with only a 2 button mouse). Selection --------- A *double click* tries to load the documentation for the selected word in the same window. If the Shift key is simultaneously pressed a new browser window is opened. Search ------ Pressing lets you search in the displayed documentation. Section Menu ------------ The Section Menu The 'Section' menu allows to directly jump to the start of a section in the documentation. Action Menu ----------- If you press the right mouse button you get a popup menu that allows: o Back in history of displayed documentation o Reload the documentation o Edit start editor with source of the displayed document. The used editor is selected by the first definition of the environment variables `XEDITOR', `VISUAL', `EDITOR' or as default `/usr/bin/vi'. o Search ... Full text search of the POD in the perl library directories. (Note: to use it one has to install perlindex distribution.) SEE ALSO ======== `tkpod' in this node *Note Perlpod: (perl.info)perlpod, `pod2man' in this node `pod2text' in this node `pod2html' in this node *Note Tk/Pod: Tk/Pod, *Note Tk/Pod/Text: Tk/Pod/Text, KEYWORDS ======== pod, browser, tk, hypertext AUTHOR ====== Achim Bohnet <`ach@mpe.mpg.de'> Copyright (c) 1997-1998 Achim Bohnet. All rights reserved. This documentation is free software; you can redistribute it and/or modify it under the same terms as Perl itself.  File: pm.info, Node: Tk/PopEntry, Next: Tk/ProgressBar, Prev: Tk/Pod_usage, Up: Module List An Entry widget with an automatic, configurable right-click menu built in, plus input masks. ******************************************************************************************** NAME ==== PopEntry - An Entry widget with an automatic, configurable right-click menu built in, plus input masks. SYNOPSIS -------- use PopEntry; $dw = $parent->PopEntry( -pattern => 'alpha', 'alphanum', 'capsonly', 'signed_int', 'unsigned_int', 'float', 'nondigit', or any supplied regexp. -nomenu => 0 or 1, -case => 'upper', 'lower', 'capitalize', -maxwidth => int, -minvalue => int, -maxvalue => int, -nospace => 0 or 1, -menuitems => ['string', 'package::callback', 'binding', 'index'], ); $dw->pack; DESCRIPTION ----------- An Entry widget with a right-click menu attached automatically. In addition, certain field masks can easily be applied to the Entry widget in order to force the end-user into entering only the values you want him or her to enter. By default, there are five items attached to the right-click menu: Cut, Copy, Paste, Delete and Sel. All. The default bindings for the items are Control-x, Control-c, Control-v, Control-d, and Control-a, respectively. The difference between 'Cut' and 'Delete' is that the former automatically copies the contents that were cut to the clipboard, while the latter does not. OPTIONS ------- *-pattern =>* string The pattern specified here creates an input mask for the PopEntry widget. There are seven pre-defined masks: * alpha - Upper and lower case a-z only. * alphanum - Alpha-numeric characters only. * capsonly - Upper case A-Z only. * nondigit - Any characters except 0-9. * float - A float value, which may or may not include a decimal. * signed_int - A signed integer value, which may or may not include a '+'. * unsigned_int - An unsigned integer value. You may also specify a regular expression of your own design using Perl's standard regular expression mechanisms. Be sure to use single quotes, e.g. '/\d\w\d/' *-nomenu =>* **0* or 1* If set to true, then no right-click menu will appear. Presumably, you would set this if you were only interested in the input-mask functionality. The default is, of course, 0. *-nospace =>* **0* or 1* If set to true (1), the user may not enter whitespace before, after or between words within that PopEntry widget. The default is 0. *-maxwidth =>* int Specifies the maximum number of characters that the user can enter in that particular PopEntry widget. Note that this is not the same as the width of the widget itself. *-maxvalue =>* *int or float* If one of the pre-defined numeric patterns is chosen, this specifies the maximum allowable value that may be entered by a user for the widget. *-minvalue =>* *int or float* If one of the pre-defined numeric patterns is chosen, this specifies the minimum allowable value for the first digit (0-9). This should work better. *-menuitems =>* *['string', 'callback', '', 'underline_index']* If specified, this creates a user-defined right-click menu rather than the one that is provided by default. The value specified must be a four element nested anonymous array that contains (in this order): 1. a string that appears on the menu, 2. a callback (in 'package::callback' syntax format), 3. a binding for that option (see below), 4. an index value specifying the character in the string to be underlined. The binding specified need only be in the form, ''. You needn't explicitly bind it yourself. Your callback will automatically be bound to the event sequence you specified. METHODS ------- *$lpe->deleteItem(index, ?index?)* Deletes the menu option at the specified index. A range of values may be deleted as well, e.g. $lpe->deleteItem(3,'end'); Returns an array reference if a single item is deleted, or a reference to an array of references if more than one item is deleted. *$lpe->addItem(?index?, $item)* Adds a menu option at the specified index, where $item is an anonymous array consisting of four elements (see the -menuitems option for details). If no index is specified, the new item will be added at the end of the menu. If an item already exists at that index, the current menu items will be "bumped" down. Returns the list of menuitems. ADVERTISED SUBWIDGETS --------------------- *$lpe->Subwidget('popupmenu')* Returns a reference to the popupmenu (a toplevel widget). KNOWN BUGS ---------- The -minvalue only works for the first digit. There is still potential for odd results if your bind happens to coincide with a binding already used by the Window Manager. In windows, where I did most of my testing, this meant that Control-v would paste twice, once because MS Windows told it to, and once because I told it to. I got different (bad) results with Control-v in KDE on Mandrake 7.2. PLANNED CHANGES --------------- Fix the issues mentioned above. Automatically bind the 'Alt' key to the underlined character. Give the option to remove bindings completely. AUTHOR ------ Daniel J. Berger djberg96@hotmail.com SEE ALSO -------- Entry  File: pm.info, Node: Tk/ProgressBar, Next: Tk/ProgressIndicator, Prev: Tk/PopEntry, Up: Module List A graphical progress bar ************************ NAME ==== Tk::ProgressBar - A graphical progress bar use Tk::ProgressBar; $progress = $parent->ProgressBar( -width => 200, -length => 20, -anchor => 's', -from => 0, -to => 100, -blocks => 10, -colors => [0, 'green', 50, 'yellow' , 80, 'red'], -variable => \$percent_done ); $progress->value($position); DESCRIPTION =========== *Tk::ProgressBar* provides a widget which will show a graphical representation of a value, given maximum and minimum reference values. STANDARD OPTIONS ================ The following standard widget options are supported: *-borderwidth* *-highlightthickness* Defaults to 0. *-padx* Defaults to 0. *-pady* Defaults to 0. *-relief* Defaults to `sunken' *-troughcolor* The color to be used for the background (trough) of the progress bar. Default is to use grey55. WIDGET-SPECIFIC OPTIONS ======================= *-anchor* This can be used to position the start point of the bar. Default is 'w' (horizontal bar starting from the left). A vertical bar can be configured by using either 's' or 'n'. *-blocks* This controls the number of blocks to be used to construct the progress bar. The default is to break the bar into 10 blocks. *-colors* Controls the colors to be used for different positions of the progress bar. The colors should be supplied as a reference to an array containing pairs of positions and colors. -colors => [ 0, 'green', 50, 'red' ] means that for the range 0 to 50 the progress bar should be green and for higher values it should be red. *-from* This sets the lower limit of the progress bar. If the bar is set to a value below the lower limt no bar will be displayed. Defaults to 0. See the `-to' description for more information. *-gap* This is the spacing (in pixels) between each block. Defaults to 1. Use 0 to get a continuous bar. *-length* Specifies the desired long dimension of the ProgressBar in screen units (i.e. any of the forms acceptable to Tk_GetPixels). For vertical ProgressBars this is the ProgressBars height; for horizontal scales it is the ProgressBars width. The default length is calculated from the values of `-padx', `-borderwidth', `-highlightthickness' and the difference between `-from' and `-to'. *-resolution* A real value specifying the resolution for the scale. If this value is greater than zero then the scale's value will always be rounded to an even multiple of this value, as will tick marks and the endpoints of the scale. If the value is less than zero then no rounding occurs. Defaults to 1 (i.e., the value will be integral). *-to* This sets the upper limit of the progress bar. If a value is specified (for example, using the value method) that lies above this value the full progress bar will be displayed. Defaults to 100. *-variable* Specifies the reference to a scalar variable to link to the ProgressBar. Whenever the value of the variable changes, the ProgressBar will upate to reflect this value. (See also the value method below.) *-value* The can be used to set the current position of the progress bar when used in conjunction with the standard configure. It is usually recommended to use the value method instead. *-width* Specifies the desired narrow dimension of the ProgressBar in screen units (i.e. any of the forms acceptable to Tk_GetPixels). For vertical ProgressBars this is the ProgressBars width; for horizontal bars this is the ProgressBars height. The default width is derived from the values of `-borderwidth' and `-pady' and `-highlightthickness'. WIDGET METHODS ============== *$ProgressBar*->value(?value?) If value is omitted, returns the current value of the ProgressBar. If value is given, the value of the ProgressBar is set. If $value is given but undefined the value of the option *-from* is used. AUTHOR ====== Graham Barr <`gbarr@pobox.com'> COPYRIGHT ========= Copyright (c) 1997-1998 Graham Barr. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.  File: pm.info, Node: Tk/ProgressIndicator, Next: Tk/ROText, Prev: Tk/ProgressBar, Up: Module List Another, simpler ProgressBar **************************** NAME ==== Tk::ProgressIndicator - Another, simpler ProgressBar SYNOPSIS ======== use Tk::ProgressIndicator; my $MainWindow = MainWindow->new(); $ProgressIndicator = $MainWindow->ProgressIndicator ( '-current' => 0, '-limit' => 200, '-increment' => 10, '-height' => 20, '-width' => 400 ); Tk::MainLoop; ... $ProgressIndicator->configure ('-current' => ++$index); DESCRIPTION =========== A progress bar widget. AUTHORS ======= Damion K. Wilson, dkw@rcm.bm HISTORY =cut ===============  File: pm.info, Node: Tk/ROText, Next: Tk/ROTextANSIColor, Prev: Tk/ProgressIndicator, Up: Module List 'readonly' perl/Tk Text widget ****************************** NAME ==== Tk::ROText - 'readonly' perl/Tk Text widget SYNOPSIS ======== use Tk::ROText; ... $ro = $mw->ROText(?options,...?); DESCRIPTION =========== This "*IS A*" text widget with all bindings removed that would alter the contents of the text widget. The contents can still be modified via method calls. KEYS ==== widget, text, readonly SEE ALSO ======== *Note Tk/Text: Tk/Text,  File: pm.info, Node: Tk/ROTextANSIColor, Next: Tk/Radiobutton, Prev: Tk/ROText, Up: Module List Read-only Tk::TextANSIColor *************************** NAME ==== Tk::ROTextANSIColor - Read-only Tk::TextANSIColor SYNOPSIS ======== use Tk::ROTextANSIColor; $wid = $mw->ROTextANSIColor(?options,...?); $wid->insert($pos, $string, ?taglist, ?string, ?taglist); use Term::ANSIColor; $red = color('red'); # Retrieve color codes $bold = color('bold'); $wid->insert('end', "$red red text $bold with bold\n"); DESCRIPTION =========== This is a read-only version of `Tk::TextANSIColor'. SEE ALSO ======== *Note Tk/ROText: Tk/ROText,, *Note Tk/TextANSIColor: Tk/TextANSIColor, AUTHOR ====== Tim Jenness (<`t.jenness@jach.hawaii.edu'>) COPYRIGHT ========= Copyright (c) 1999-2000 Tim Jenness. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.  File: pm.info, Node: Tk/Radiobutton, Next: Tk/Reindex, Prev: Tk/ROTextANSIColor, Up: Module List Create and manipulate Radiobutton widgets ***************************************** NAME ==== Tk::Radiobutton - Create and manipulate Radiobutton widgets *$radiobutton* = *$parent*->Radiobutton(?options?); STANDARD OPTIONS ================ *-activebackground* *-cursor* *-highlightthickness* *-takefocus* *-activeforeground* *-disabledforeground* *-image* *-text* *-anchor* *-font* -justify *-textvariable* *-background* *-foreground* *-padx* *-underline* *-bitmap* *-highlightbackground* *-pady* *-wraplength* *-borderwidth* *-highlightcolor* *-relief* See *Note Tk/options: Tk/options, for details of the standard options. WIDGET-SPECIFIC OPTIONS ======================= Name: command Class: Command Switch: *-command* Specifies a `Tk callback|Tk::callbacks', *Note Perl: (perl.info)perl, to associate with the button. This command is typically invoked when mouse button 1 is released over the button window. The button's global variable (*-variable* option) will be updated before the command is invoked. Name: height Class: *Height* Switch: *-height* Specifies a desired height for the button. If an image or bitmap is being displayed in the button then the value is in screen units (i.e. any of the forms acceptable to *Tk_GetPixels*); for text it is in lines of text. If this option isn't specified, the button's desired height is computed from the size of the image or bitmap or text being displayed in it. Name: *indicatorOn* Class: *IndicatorOn* Switch: *-indicatoron* Specifies whether or not the indicator should be drawn. Must be a proper boolean value. If false, the *relief* option is ignored and the widget's relief is always sunken if the widget is selected and raised otherwise. Name: *selectColor* Class: Background Switch: *-selectcolor* Specifies a background color to use when the button is selected. If *indicatorOn* is true then the color applies to the indicator. Under Windows, this color is used as the background for the indicator regardless of the select state. If *indicatorOn* is false, this color is used as the background for the entire widget, in place of background or *activeBackground*, whenever the widget is selected. If specified as an empty string then no special color is used for displaying when the widget is selected. Name: *selectImage* Class: *SelectImage* Switch: *-selectimage* Specifies an image to display (in place of the image option) when the radiobutton is selected. This option is ignored unless the image option has been specified. Name: state Class: State Switch: *-state* Specifies one of three states for the radiobutton: normal, active, or disabled. In normal state the radiobutton is displayed using the *foreground* and background options. The active state is typically used when the pointer is over the radiobutton. In active state the radiobutton is displayed using the *activeForeground* and *activeBackground* options. Disabled state means that the radiobutton should be insensitive: the default bindings will refuse to activate the widget and will ignore mouse button presses. In this state the *disabledForeground* and background options determine how the radiobutton is displayed. Name: value Class: Value Switch: *-value* Specifies value to store in the button's associated variable whenever this button is selected. Name: variable Class: Variable Switch: *-variable* Specifies reference to a variable to set whenever this button is selected. Changes in this variable also cause the button to select or deselect itself. Defaults to the value `\$Tk::selectedButton'. Name: width Class: Width Switch: *-width* Specifies a desired width for the button. If an image or bitmap is being displayed in the button, the value is in screen units (i.e. any of the forms acceptable to *Tk_GetPixels*); for text it is in characters. If this option isn't specified, the button's desired width is computed from the size of the image or bitmap or text being displayed in it. DESCRIPTION =========== The Radiobutton method creates a new window (given by the $widget argument) and makes it into a radiobutton widget. Additional options, described above, may be specified on the command line or in the option database to configure aspects of the radiobutton such as its colors, font, text, and initial relief. The *radiobutton* command returns its $widget argument. At the time this command is invoked, there must not exist a window named $widget, but $widget's parent must exist. A radiobutton is a widget that displays a textual string, bitmap or image and a diamond or circle called an *indicator*. If text is displayed, it must all be in a single font, but it can occupy multiple lines on the screen (if it contains newlines or if wrapping occurs because of the *wrapLength* option) and one of the characters may optionally be underlined using the underline option. A radiobutton has all of the behavior of a simple button: it can display itself in either of three different ways, according to the state option; it can be made to appear raised, sunken, or flat; it can be made to flash; and it invokes a `Tk callback|Tk::callbacks', *Note Perl: (perl.info)perl, whenever mouse button 1 is clicked over the check button. In addition, radiobuttons can be *selected*. If a radiobutton is selected, the indicator is normally drawn with a selected appearance, and a Tcl variable associated with the radiobutton is set to a particular value (normally 1). Under Unix, the indicator is drawn with a sunken relief and a special color. Under Windows, the indicator is drawn with a round mark inside. If the radiobutton is not selected, then the indicator is drawn with a deselected appearance, and the associated variable is set to a different value (typically 0). Under Unix, the indicator is drawn with a raised relief and no special color. Under Windows, the indicator is drawn without a round mark inside. Typically, several radiobuttons share a single variable and the value of the variable indicates which radiobutton is to be selected. When a radiobutton is selected it sets the value of the variable to indicate that fact; each radiobutton also monitors the value of the variable and automatically selects and deselects itself when the variable's value changes. By default the variable *selectedButton* is used; its contents give the name of the button that is selected, or the empty string if no button associated with that variable is selected. The name of the variable for a radiobutton, plus the variable to be stored into it, may be modified with options on the command line or in the option database. Configuration options may also be used to modify the way the indicator is displayed (or whether it is displayed at all). By default a radiobutton is configured to select itself on button clicks. WIDGET METHODS ============== The Radiobutton method creates a widget object. This object supports the configure and cget methods described in *Note Tk/options: Tk/options, which can be used to enquire and modify the options described above. The widget also inherits all the methods provided by the generic `Tk::Widget|Tk::Widget' in this node class. The following additional methods are available for radiobutton widgets: *$radiobutton*->*deselect* Deselects the radiobutton and sets the associated variable to an empty string. If this radiobutton was not currently selected, the command has no effect. *$radiobutton*->flash Flashes the radiobutton. This is accomplished by redisplaying the radiobutton several times, alternating between active and normal colors. At the end of the flash the radiobutton is left in the same normal/active state as when the command was invoked. This command is ignored if the radiobutton's state is disabled. *$radiobutton*->*invoke* Does just what would have happened if the user invoked the radiobutton with the mouse: selects the button and invokes its associated Tcl command, if there is one. The return value is the return value from the Tcl command, or an empty string if there is no command associated with the radiobutton. This command is ignored if the radiobutton's state is disabled. *$radiobutton*->select Selects the radiobutton and sets the associated variable to the value corresponding to this widget. BINDINGS ======== Tk automatically creates class bindings for radiobuttons that give them the following default behavior: [1] On Unix systems, a radiobutton activates whenever the mouse passes over it and deactivates whenever the mouse leaves the radiobutton. On Mac and Windows systems, when mouse button 1 is pressed over a radiobutton, the button activates whenever the mouse pointer is inside the button, and deactivates whenever the mouse pointer leaves the button. [2] When mouse button 1 is pressed over a radiobutton it is invoked (it becomes selected and the command associated with the button is invoked, if there is one). [3] When a radiobutton has the input focus, the space key causes the radiobutton to be invoked. If the radiobutton's state is disabled then none of the above actions occur: the radiobutton is completely non-responsive. The behavior of radiobuttons can be changed by defining new bindings for individual widgets or by redefining the class bindings. KEYWORDS ======== radiobutton, widget  File: pm.info, Node: Tk/Reindex, Next: Tk/RemoteFileSelect, Prev: Tk/Radiobutton, Up: Module List change the base index of Text-like widgets ****************************************** NAME ==== Tk::Reindex - change the base index of Text-like widgets use Tk::ReindexedText; $t1=$w->ReindexedText(-linestart => 2); use Tk::ReindexedROText; $t2=$w->ReindexedROText(-linestart => 0); 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. STANDARD OPTIONS ================ The newly-defined widget takes all the same options as the base widget, which defaults to Text. 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: *toIndexCmd* *fromIndexCmd* -item Class: *ToIndexCmd* *FromIndexCmd* -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. 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. 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. AUTHOR ====== Andrew Allen This code may be distributed under the same conditions as Perl.  File: pm.info, Node: Tk/RemoteFileSelect, Next: Tk/RotCanvas, Prev: Tk/Reindex, Up: Module List Browse directories with FTP. **************************** NAME ==== RemoteFileSelect.pm--Browse directories with FTP. SYNOPSIS ======== require Tk::RemoteFileSelect; my $file = $mw -> Tk::RemoteFileSelect( -directory => '.' ); DESCRIPTION =========== A RemoteFileSelect contains two listboxes that display subdirectories and files, a directory entry and a file name entry, and buttons for each operation, which are labeled with Alt-key accelerators. When entering a file name, the RemoteFileSelect verifies whether the file already exists. If a file is selected in the listbox, the RemoteFileSelect returns that file's name when the user clicks the 'Accept' button, presses Enter after typing a name in the file entry, or double clicks on a selection in the file list box. Additionally, if the Net::FTP module is installed, RemoteFileSelect will activate an additional "Host" button on the FileSelect widget, where you can enter the host name, and your user id and password, and select files on the remote host. If a file name is selected on the local host, then the RemoteFileSelect widget returns the path to the file name, the same as a standard FileSelect widget. If a file is selected on a remote host, then the RemoteFileSelect widget returns the name in the form: host:/full-pathname-of-file RemoteFileSelect requires the Net::FTP module to be installed. If it cannot find and load Net::FTP, the RemoteFileSelect widget behaves like a standard FileSelect widget, and the "Host" button is grayed out. RemoteFileSelect.pm was developed with the Net::FTP module distributed with libnet-1.0703, from http://www.cpan.org/. All other operations function as in a FileSelect widget. Please refer to the FileSelect.pm POD documentation. VERSION INFO ============ First development version. $Revision: 0.55 $  File: pm.info, Node: Tk/RotCanvas, Next: Tk/Scale, Prev: Tk/RemoteFileSelect, Up: Module List Canvas widget with arbitrary rotation support ********************************************* NAME ==== Tk::RotCanvas - Canvas widget with arbitrary rotation support $canvas = $parent->RotCanvas(?options?); my $obj = $canvas->create('polygon', @coords, %options); $canvas->rotate($obj, $angle, ?x, y?); DESCRIPTION =========== This module is a small wrapper around the Canvas widget that adds a new rotate() method. This method allows the rotation of various canvas objects by arbitrary angles. NEW METHODS =========== As mentioned previously, there is only one new method. All other canvas methods work as expected. *$canvas*->rotate(*TagOrID, angle* ?,*x, y*?) This method rotates the object identified by TagOrID by an angle *angle*. The angle is specified in *degrees*. If a coordinate is specified, then the object is rotated about that point. Else, the object is rotated about its center of mass. LIMITATIONS =========== As it stands, the module can only handle the following object types: * Lines * Rectangles * Polygons All other object types (bitmap, image, arc, text, window and oval) can not be handled yet. A warning is issued if the user tries to rotate one of these object types. Hopefully, more types will be handled in the future. MORE DETAILS YOU DON'T NEED TO KNOW =================================== To be able to handle rectangles, the module intercepts any calls to *createRectangle()* and create() and changes all rectangles to polygons. The user should not be alarmed if type() returned *polygon* when a rectangle was expected. AUTHOR ====== Ala Qumsieh *aqumsieh@hyperchip.com* COPYRIGHTS ========== This module is distributed under the same terms as Perl itself.  File: pm.info, Node: Tk/Scale, Next: Tk/Scrollbar, Prev: Tk/RotCanvas, Up: Module List Create and manipulate Scale widgets *********************************** NAME ==== Tk::Scale - Create and manipulate Scale widgets $scale = *$parent*->Scale(?options?); STANDARD OPTIONS ================ *-activebackground* *-font* *-highlightthickness* *-repeatinterval* *-background* *-foreground* *-orient* *-takefocus* *-borderwidth* *-highlightbackground* *-relief* *-troughcolor* *-cursor* *-highlightcolor* *-repeatdelay* See *Note Tk/options: Tk/options, for details of the standard options. WIDGET-SPECIFIC OPTIONS ======================= Name: *bigIncrement* Class: *BigIncrement* Switch: *-bigincrement* Some interactions with the scale cause its value to change by "large" increments; this option specifies the size of the large increments. If specified as 0, the large increments default to 1/10 the range of the scale. Name: command Class: Command Switch: *-command* Specifies the prefix of a `Tk callback|Tk::callbacks', *Note Perl: (perl.info)perl, to invoke whenever the scale's value is changed via a method. The actual command consists of this option followed by a space and a real number indicating the new value of the scale. Name: digits Class: *Digits* Switch: *-digits* An integer specifying how many significant digits should be retained when converting the value of the scale to a string. If the number is less than or equal to zero, then the scale picks the smallest value that guarantees that every possible slider position prints as a different string. Name: from Class: From Switch: *-from* A real value corresponding to the left or top end of the scale. Name: label Class: Label Switch: *-label* A string to display as a label for the scale. For vertical scales the label is displayed just to the right of the top end of the scale. For horizontal scales the label is displayed just above the left end of the scale. If the option is specified as an empty string, no label is displayed. Name: length Class: Length Switch: *-length* Specifies the desired long dimension of the scale in screen units (i.e. any of the forms acceptable to *Tk_GetPixels*). For vertical scales this is the scale's height; for horizontal scales it is the scale's width. Name: resolution Class: Resolution Switch: *-resolution* A real value specifying the resolution for the scale. If this value is greater than zero then the scale's value will always be rounded to an even multiple of this value, as will tick marks and the endpoints of the scale. If the value is less than zero then no rounding occurs. Defaults to 1 (i.e., the value will be integral). Name: *showValue* Class: *ShowValue* Switch: *-showvalue* Specifies a boolean value indicating whether or not the current value of the scale is to be displayed. Name: *sliderLength* Class: *SliderLength* Switch: *-sliderlength* Specfies the size of the slider, measured in screen units along the slider's long dimension. The value may be specified in any of the forms acceptable to *Tk_GetPixels*. Name: *sliderRelief* Class: *SliderRelief* Switch: *-sliderrelief* Specifies the relief to use when drawing the slider, such as *raised* or *sunken*. Name: state Class: State Switch: *-state* Specifies one of three states for the scale: normal, active, or disabled. If the scale is disabled then the value may not be changed and the scale won't activate. If the scale is active, the slider is displayed using the color specified by the *activeBackground* option. Name: *tickInterval* Class: *TickInterval* Switch: *-tickinterval* Must be a real value. Determines the spacing between numerical tick marks displayed below or to the left of the slider. If 0, no tick marks will be displayed. Name: to Class: To Switch: *-to* Specifies a real value corresponding to the right or bottom end of the scale. This value may be either less than or greater than the from option. Name: variable Class: Variable Switch: *-variable* Specifies the name of a global variable to link to the scale. Whenever the value of the variable changes, the scale will update to reflect this value. Whenever the scale is manipulated interactively, the variable will be modified to reflect the scale's new value. Name: width Class: Width Switch: *-width* Specifies the desired narrow dimension of the trough in screen units (i.e. any of the forms acceptable to *Tk_GetPixels*). For vertical scales this is the trough's width; for horizontal scales this is the trough's height. DESCRIPTION =========== The Scale method creates a new window (given by the $widget argument) and makes it into a scale widget. Additional options, described above, may be specified on the command line or in the option database to configure aspects of the scale such as its colors, orientation, and relief. The scale command returns its $widget argument. At the time this command is invoked, there must not exist a window named $widget, but $widget's parent must exist. A scale is a widget that displays a rectangular *trough* and a small slider. The trough corresponds to a range of real values (determined by the from, to, and resolution options), and the position of the slider selects a particular real value. The slider's position (and hence the scale's value) may be adjusted with the mouse or keyboard as described in the `"BINDINGS"' in this node section below. Whenever the scale's value is changed, a Tcl command is invoked (using the command option) to notify other interested widgets of the change. In addition, the value of the scale can be linked to a Tcl variable (using the variable option), so that changes in either are reflected in the other. Three annotations may be displayed in a scale widget: a label appearing at the top right of the widget (top left for horizontal scales), a number displayed just to the left of the slider (just above the slider for horizontal scales), and a collection of numerical tick marks just to the left of the current value (just below the trough for horizontal scales). Each of these three annotations may be enabled or disabled using the configuration options. WIDGET METHODS ============== The Scale method creates a widget object. This object supports the configure and cget methods described in *Note Tk/options: Tk/options, which can be used to enquire and modify the options described above. The widget also inherits all the methods provided by the generic `Tk::Widget|Tk::Widget' in this node class. The following additional methods are available for scale widgets: $scale->*coords*(?value?) Returns a list whose elements are the x and y coordinates of the point along the centerline of the trough that corresponds to value. If value is omitted then the scale's current value is used. $scale->get(?*x, y*?) If x and y are omitted, returns the current value of the scale. If x and y are specified, they give pixel coordinates within the widget; the command returns the scale value corresponding to the given pixel. Only one of x or y is used: for horizontal scales y is ignored, and for vertical scales x is ignored. $scale->identify(*x, y*) Returns a string indicating what part of the scale lies under the coordinates given by x and y. A return value of slider means that the point is over the slider; trough1 means that the point is over the portion of the slider above or to the left of the slider; and trough2 means that the point is over the portion of the slider below or to the right of the slider. If the point isn't over one of these elements, an empty string is returned. $scale->set(value) This command is invoked to change the current value of the scale, and hence the position at which the slider is displayed. Value gives the new value for the scale. The command has no effect if the scale is disabled. BINDINGS ======== Tk automatically creates class bindings for scales that give them the following default behavior. Where the behavior is different for vertical and horizontal scales, the horizontal behavior is described in parentheses. [1] If button 1 is pressed in the trough, the scale's value will be incremented or decremented by the value of the resolution option so that the slider moves in the direction of the cursor. If the button is held down, the action auto-repeats. [2] If button 1 is pressed over the slider, the slider can be dragged with the mouse. [3] If button 1 is pressed in the trough with the Control key down, the slider moves all the way to the end of its range, in the direction towards the mouse cursor. [4] If button 2 is pressed, the scale's value is set to the mouse position. If the mouse is dragged with button 2 down, the scale's value changes with the drag. [5] The Up and Left keys move the slider up (left) by the value of the resolution option. [6] The Down and Right keys move the slider down (right) by the value of the resolution option. [7] Control-Up and Control-Left move the slider up (left) by the value of the *bigIncrement* option. [8] Control-Down and Control-Right move the slider down (right) by the value of the *bigIncrement* option. [9] Home moves the slider to the top (left) end of its range. [10] End moves the slider to the bottom (right) end of its range. If the scale is disabled using the state option then none of the above bindings have any effect. The behavior of scales can be changed by defining new bindings for individual widgets or by redefining the class bindings. KEYWORDS ======== scale, slider, trough, widget  File: pm.info, Node: Tk/Scrollbar, Next: Tk/Scrolled, Prev: Tk/Scale, Up: Module List Create and manipulate Scrollbar widgets *************************************** NAME ==== Tk::Scrollbar - Create and manipulate Scrollbar widgets *$scrollbar* = *$parent*->Scrollbar(?options?); STANDARD OPTIONS ================ *-activebackground* *-highlightbackground* *-orient* *-takefocus* *-background* *-highlightcolor* *-relief* *-troughcolor* *-borderwidth* *-highlightthickness* *-repeatdelay* *-cursor* *-jump* *-repeatinterval* See *Note Tk/options: Tk/options, for details of the standard options. WIDGET-SPECIFIC OPTIONS ======================= Name: *activeRelief* Class: *ActiveRelief* Switch: *-activerelief* Specifies the relief to use when displaying the element that is active, if any. Elements other than the active element are always displayed with a raised relief. Name: command Class: Command Switch: *-command* Specifies a callback to invoke to change the view in the widget associated with the scrollbar. When a user requests a view change by manipulating the scrollbar, the callback is invoked. The callback is passed additional arguments as described later. This option almost always has a value such as *[xview => $widget]* or *[yview => $widget]*, consisting of the a widget object and either *xview* (if the scrollbar is for horizontal scrolling) or *yview* (for vertical scrolling). All scrollable widgets have *xview* and *yview* methods that take exactly the additional arguments appended by the scrollbar as described in `"SCROLLING COMMANDS"' in this node below. Name: *elementBorderWidth* Class: *BorderWidth* Switch: *-elementborderwidth* Specifies the width of borders drawn around the internal elements of the scrollbar (the two arrows and the slider). The value may have any of the forms acceptable to *Tk_GetPixels*. If this value is less than zero, the value of the *borderWidth* option is used in its place. Name: width Class: Width Switch: *-width* Specifies the desired narrow dimension of the scrollbar window, not including 3-D border, if any. For vertical scrollbars this will be the width and for horizontal scrollbars this will be the height. The value may have any of the forms acceptable to *Tk_GetPixels*. DESCRIPTION =========== The Scrollbar method creates a new window (given by the $widget argument) and makes it into a scrollbar widget. Additional options, described above, may be specified on the command line or in the option database to configure aspects of the scrollbar such as its colors, orientation, and relief. The *scrollbar* command returns its $widget argument. At the time this command is invoked, there must not exist a window named $widget, but $widget's parent must exist. A scrollbar is a widget that displays two arrows, one at each end of the scrollbar, and a slider in the middle portion of the scrollbar. It provides information about what is visible in an *associated window* that displays an document of some sort (such as a file being edited or a drawing). The position and size of the slider indicate which portion of the document is visible in the associated window. For example, if the slider in a vertical scrollbar covers the top third of the area between the two arrows, it means that the associated window displays the top third of its document. Scrollbars can be used to adjust the view in the associated window by clicking or dragging with the mouse. See `"BINDINGS"' in this node below for details. ELEMENTS ======== A scrollbar displays five elements, which are referred to in the methods for the scrollbar: arrow1 The top or left arrow in the scrollbar. trough1 The region between the slider and arrow1. slider The rectangle that indicates what is visible in the associated widget. trough2 The region between the slider and arrow2. arrow2 The bottom or right arrow in the scrollbar. WIDGET METHODS ============== The Scrollbar method creates a widget object. This object supports the configure and cget methods described in *Note Tk/options: Tk/options, which can be used to enquire and modify the options described above. The widget also inherits all the methods provided by the generic `Tk::Widget|Tk::Widget' in this node class. The following additional methods are available for scrollbar widgets: *$scrollbar*->activate(?*element*?) Marks the element indicated by *element* as active, which causes it to be displayed as specified by the *activeBackground* and *activeRelief* options. The only element values understood by this command are arrow1, slider, or arrow2. If any other value is specified then no element of the scrollbar will be active. If *element* is not specified, the command returns the name of the element that is currently active, or an empty string if no element is active. *$scrollbar*->*delta*(*deltaX, deltaY*) Returns a real number indicating the fractional change in the scrollbar setting that corresponds to a given change in slider position. For example, if the scrollbar is horizontal, the result indicates how much the scrollbar setting must change to move the slider *deltaX* pixels to the right (*deltaY* is ignored in this case). If the scrollbar is vertical, the result indicates how much the scrollbar setting must change to move the slider *deltaY* pixels down. The arguments and the result may be zero or negative. *$scrollbar*->*fraction*(*x, y*) Returns a real number between 0 and 1 indicating where the point given by x and y lies in the trough area of the scrollbar. The value 0 corresponds to the top or left of the trough, the value 1 corresponds to the bottom or right, 0.5 corresponds to the middle, and so on. X and y must be pixel coordinates relative to the scrollbar widget. If x and y refer to a point outside the trough, the closest point in the trough is used. *$scrollbar*->get Returns the scrollbar settings in the form of a list whose elements are the arguments to the most recent set method. *$scrollbar*->identify(*x, y*) Returns the name of the element under the point given by x and y (such as arrow1), or an empty string if the point does not lie in any element of the scrollbar. X and y must be pixel coordinates relative to the scrollbar widget. *$scrollbar*->set(*first, last*) This command is invoked by the scrollbar's associated widget to tell the scrollbar about the current view in the widget. The command takes two arguments, each of which is a real fraction between 0 and 1. The fractions describe the range of the document that is visible in the associated widget. For example, if first is 0.2 and last is 0.4, it means that the first part of the document visible in the window is 20% of the way through the document, and the last visible part is 40% of the way through. SCROLLING COMMANDS ================== When the user interacts with the scrollbar, for example by dragging the slider, the scrollbar notifies the associated widget that it must change its view. The scrollbar makes the notification by evaluating a callback specified as the scrollbar's *-command* option. The callback may take several forms. In each case, the intial arguments passed are those specified in the *-command* callback itself, which usually has a form like [*yview* => $widget]. (Which will invoke $widget->*yview*(...) where the ... part is as below. See *Note Tk/callbacks: Tk/callbacks, for details.) The callback is passed additional arguments as follows: *moveto*,*fraction* *Fraction* is a real number between 0 and 1. The widget should adjust its view so that the point given by *fraction* appears at the beginning of the widget. If *fraction* is 0 it refers to the beginning of the document. 1.0 refers to the end of the document, 0.333 refers to a point one-third of the way through the document, and so on. *scroll,**number,**units* The widget should adjust its view by number units. The units are defined in whatever way makes sense for the widget, such as characters or lines in a text widget. Number is either 1, which means one unit should scroll off the top or left of the window, or -1, which means that one unit should scroll off the bottom or right of the window. scroll,number,page The widget should adjust its view by number pages. It is up to the widget to define the meaning of a page; typically it is slightly less than what fits in the window, so that there is a slight overlap between the old and new views. Number is either 1, which means the next page should become visible, or -1, which means that the previous page should become visible. OLD COMMAND SYNTAX ================== In versions of Tk before 4.0, the set and get widget commands used a different form. This form is still supported for backward compatibility, but it is deprecated. In the old command syntax, the set method has the following form: *$scrollbar*->set(*totalUnits, windowUnits, firstUnit, lastUnit*) In this form the arguments are all integers. *TotalUnits* gives the total size of the object being displayed in the associated widget. The meaning of one unit depends on the associated widget; for example, in a text editor widget units might correspond to lines of text. *WindowUnits* indicates the total number of units that can fit in the associated window at one time. *FirstUnit* and *lastUnit* give the indices of the first and last units currently visible in the associated window (zero corresponds to the first unit of the object). Under the old syntax the get method returns a list of four integers, consisting of the *totalUnits*, *windowUnits*, *firstUnit*, and *lastUnit* values from the last set method. The callbacks generated by scrollbars also have a different form when the old syntax is being used, the callback is passed a single argument: unit *Unit* is an integer that indicates what should appear at the top or left of the associated widget's window. It has the same meaning as the *firstUnit* and *lastUnit* arguments to the set method. The most recent set method determines whether or not to use the old syntax. If it is given two real arguments then the new syntax will be used in the future, and if it is given four integer arguments then the old syntax will be used. BINDINGS ======== Tk automatically creates class bindings for scrollbars that give them the following default behavior. If the behavior is different for vertical and horizontal scrollbars, the horizontal behavior is described in parentheses. [1] Pressing button 1 over arrow1 causes the view in the associated widget to shift up (left) by one unit so that the document appears to move down (right) one unit. If the button is held down, the action auto-repeats. [2] Pressing button 1 over trough1 causes the view in the associated widget to shift up (left) by one screenful so that the document appears to move down (right) one screenful. If the button is held down, the action auto-repeats. [3] Pressing button 1 over the slider and dragging causes the view to drag with the slider. If the jump option is true, then the view doesn't drag along with the slider; it changes only when the mouse button is released. [4] Pressing button 1 over trough2 causes the view in the associated widget to shift down (right) by one screenful so that the document appears to move up (left) one screenful. If the button is held down, the action auto-repeats. [5] Pressing button 1 over arrow2 causes the view in the associated widget to shift down (right) by one unit so that the document appears to move up (left) one unit. If the button is held down, the action auto-repeats. [6] If button 2 is pressed over the trough or the slider, it sets the view to correspond to the mouse position; dragging the mouse with button 2 down causes the view to drag with the mouse. If button 2 is pressed over one of the arrows, it causes the same behavior as pressing button 1. [7] If button 1 is pressed with the Control key down, then if the mouse is over arrow1 or trough1 the view changes to the very top (left) of the document; if the mouse is over arrow2 or trough2 the view changes to the very bottom (right) of the document; if the mouse is anywhere else then the button press has no effect. [8] In vertical scrollbars the Up and Down keys have the same behavior as mouse clicks over arrow1 and arrow2, respectively. In horizontal scrollbars these keys have no effect. [9] In vertical scrollbars Control-Up and Control-Down have the same behavior as mouse clicks over trough1 and trough2, respectively. In horizontal scrollbars these keys have no effect. [10] In horizontal scrollbars the Up and Down keys have the same behavior as mouse clicks over arrow1 and arrow2, respectively. In vertical scrollbars these keys have no effect. [11] In horizontal scrollbars Control-Up and Control-Down have the same behavior as mouse clicks over trough1 and trough2, respectively. In vertical scrollbars these keys have no effect. [12] The Prior and Next keys have the same behavior as mouse clicks over trough1 and trough2, respectively. [13] The Home key adjusts the view to the top (left edge) of the document. [14] The End key adjusts the view to the bottom (right edge) of the document. SEE ALSO ======== `Tk::callbacks|Tk::callbacks' in this node `Tk::Scrolled|Tk::Scrolled' in this node KEYWORDS ======== scrollbar, widget