| '\" |
| '\" Copyright (c) 1996 DSC Technologies Corporation |
| '\" |
| '\" See the file "license.terms" for information on usage and redistribution |
| '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. |
| '\" |
| '\" @(#) scrolledhtml.n 1.21 94/12/17 16:04:44 |
| '\" |
| '\" The definitions below are for supplemental macros used in Tcl/Tk |
| '\" manual entries. |
| '\" |
| '\" .HS name section [date [version]] |
| '\" Replacement for .TH in other man pages. See below for valid |
| '\" section names. |
| '\" |
| '\" .AP type name in/out [indent] |
| '\" Start paragraph describing an argument to a library procedure. |
| '\" type is type of argument (int, etc.), in/out is either "in", "out", |
| '\" or "in/out" to describe whether procedure reads or modifies arg, |
| '\" and indent is equivalent to second arg of .IP (shouldn't ever be |
| '\" needed; use .AS below instead) |
| '\" |
| '\" .AS [type [name]] |
| '\" Give maximum sizes of arguments for setting tab stops. Type and |
| '\" name are examples of largest possible arguments that will be passed |
| '\" to .AP later. If args are omitted, default tab stops are used. |
| '\" |
| '\" .BS |
| '\" Start box enclosure. From here until next .BE, everything will be |
| '\" enclosed in one large box. |
| '\" |
| '\" .BE |
| '\" End of box enclosure. |
| '\" |
| '\" .VS |
| '\" Begin vertical sidebar, for use in marking newly-changed parts |
| '\" of man pages. |
| '\" |
| '\" .VE |
| '\" End of vertical sidebar. |
| '\" |
| '\" .DS |
| '\" Begin an indented unfilled display. |
| '\" |
| '\" .DE |
| '\" End of indented unfilled display. |
| '\" |
| '\" @(#) man.macros 1.1 94/08/09 13:07:19 |
| .\" |
| '\" # Heading for Tcl/Tk man pages |
| .de HS |
| .ds ^3 \\0 |
| .if !"\\$3"" .ds ^3 \\$3 |
| .if '\\$2'cmds' .TH "\\$1" 1 "\\*(^3" "\\$4" "\\$5" |
| .if '\\$2'lib' .TH "\\$1" 3 "\\*(^3" "\\$4" "\\$5" |
| .if '\\$2'ncmds' .TH "\\$1" n "\\*(^3" "\\$4" "\\$5" |
| .if '\\$2'tcl' .TH "\\$1" n "\\*(^3" Tcl "Tcl Built-In Commands" |
| .if '\\$2'tk' .TH "\\$1" n "\\*(^3" Tk "Tk Commands" |
| .if '\\$2'tclc' .TH "\\$1" 3 "\\*(^3" Tcl "Tcl Library Procedures" |
| .if '\\$2'tkc' .TH "\\$1" 3 "\\*(^3" Tk "Tk Library Procedures" |
| .if '\\$2'tclcmds' .TH "\\$1" 1 "\\*(^3" Tk "Tcl Applications" |
| .if '\\$2'tkcmds' .TH "\\$1" 1 "\\*(^3" Tk "Tk Applications" |
| .if '\\$2'iwid' .TH "\\$1" 1 "\\*(^3" Tk "[incr Widgets]" |
| .if t .wh -1.3i ^B |
| .nr ^l \\n(.l |
| .ad b |
| .. |
| '\" # Start an argument description |
| .de AP |
| .ie !"\\$4"" .TP \\$4 |
| .el \{\ |
| . ie !"\\$2"" .TP \\n()Cu |
| . el .TP 15 |
| .\} |
| .ie !"\\$3"" \{\ |
| .ta \\n()Au \\n()Bu |
| \&\\$1 \\fI\\$2\\fP (\\$3) |
| .\".b |
| .\} |
| .el \{\ |
| .br |
| .ie !"\\$2"" \{\ |
| \&\\$1 \\fI\\$2\\fP |
| .\} |
| .el \{\ |
| \&\\fI\\$1\\fP |
| .\} |
| .\} |
| .. |
| '\" # define tabbing values for .AP |
| .de AS |
| .nr )A 10n |
| .if !"\\$1"" .nr )A \\w'\\$1'u+3n |
| .nr )B \\n()Au+15n |
| .\" |
| .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n |
| .nr )C \\n()Bu+\\w'(in/out)'u+2n |
| .. |
| '\" # BS - start boxed text |
| '\" # ^y = starting y location |
| '\" # ^b = 1 |
| .de BS |
| .br |
| .mk ^y |
| .nr ^b 1u |
| .if n .nf |
| .if n .ti 0 |
| .if n \l'\\n(.lu\(ul' |
| .if n .fi |
| .. |
| '\" # BE - end boxed text (draw box now) |
| .de BE |
| .nf |
| .ti 0 |
| .mk ^t |
| .ie n \l'\\n(^lu\(ul' |
| .el \{\ |
| .\" Draw four-sided box normally, but don't draw top of |
| .\" box if the box started on an earlier page. |
| .ie !\\n(^b-1 \{\ |
| \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
| .\} |
| .el \}\ |
| \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
| .\} |
| .\} |
| .fi |
| .br |
| .nr ^b 0 |
| .. |
| '\" # VS - start vertical sidebar |
| '\" # ^Y = starting y location |
| '\" # ^v = 1 (for troff; for nroff this doesn't matter) |
| .de VS |
| .mk ^Y |
| .ie n 'mc \s12\(br\s0 |
| .el .nr ^v 1u |
| .. |
| '\" # VE - end of vertical sidebar |
| .de VE |
| .ie n 'mc |
| .el \{\ |
| .ev 2 |
| .nf |
| .ti 0 |
| .mk ^t |
| \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' |
| .sp -1 |
| .fi |
| .ev |
| .\} |
| .nr ^v 0 |
| .. |
| '\" # Special macro to handle page bottom: finish off current |
| '\" # box/sidebar if in box/sidebar mode, then invoked standard |
| '\" # page bottom macro. |
| .de ^B |
| .ev 2 |
| 'ti 0 |
| 'nf |
| .mk ^t |
| .if \\n(^b \{\ |
| .\" Draw three-sided box if this is the box's first page, |
| .\" draw two sides but no top otherwise. |
| .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
| .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
| .\} |
| .if \\n(^v \{\ |
| .nr ^x \\n(^tu+1v-\\n(^Yu |
| \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c |
| .\} |
| .bp |
| 'fi |
| .ev |
| .if \\n(^b \{\ |
| .mk ^y |
| .nr ^b 2 |
| .\} |
| .if \\n(^v \{\ |
| .mk ^Y |
| .\} |
| .. |
| '\" # DS - begin display |
| .de DS |
| .RS |
| .nf |
| .sp |
| .. |
| '\" # DE - end display |
| .de DE |
| .fi |
| .RE |
| .sp |
| .. |
| .HS iwidgets::scrolledhtml iwid |
| .BS |
| '\" Note: do not modify the .SH NAME line immediately below! |
| .SH NAME |
| iwidgets::scrolledhtml \- Create and manipulate a scrolled text widget with the capability |
| of displaying HTML formatted documents. |
| .SH SYNOPSIS |
| \fBiwidgets::scrolledhtml\fI \fIpathName \fR?\fIoptions\fR? |
| .SH "INHERITANCE" |
| itk::Widget <- iwidgets::Labeledwidget <- iwidgets::Scrolledtext <- iwidgets::Scrolledhtml |
| .SH "STANDARD OPTIONS" |
| .LP |
| .nf |
| .ta 4c 8c 12c |
| \fB |
| activeBackground background borderWidth cursor |
| exportSelection foreground highlightColor highlightThickness |
| insertBackground insertBorderWidth insertOffTime insertOnTime |
| insertWidth padX padY relief |
| repeatDelay repeatInterval selectBackground selectBorderWidth |
| selectForeground setGrid\fR |
| .fi |
| .LP |
| See the "options" manual entry for details on the standard options. |
| .SH "ASSOCIATED OPTIONS" |
| .LP |
| .nf |
| .ta 4c 8c 12c |
| \fBactiveRelief\fR \fBelementBorderWidth\fR \fBjump\fR \fBtroughColor\fR |
| .fi |
| .LP |
| See the "scrollbar" widget manual entry for details on the above |
| associated options. |
| .LP |
| .nf |
| .ta 4c 8c 12c |
| \fBspacing1\fR \fBspacing2\fR \fBspacing3\fR \fBstate\fR |
| \fBtabs\fR \fBwrap\fR |
| .fi |
| .LP |
| See the "text" widget manual entry for details on the above |
| associated options. |
| .SH "INHERITED OPTIONS" |
| .LP |
| .nf |
| .ta 4c 8c 12c |
| \fBlabelBitmap\fR \fBlabelFont\fR \fBlabelImage\fR \fBlabelMargin\fR |
| \fBlabelPos\fR \fBlabelText\fR \fBlabelVariable\fR \fBheight\fR |
| \fBhscrollMode\fR \fBsbWidth\fR \fBscrollMargin\fR \fBvisibleitems\fR |
| \fBvscrollMode\fR \fBwidth\fR |
| .fi |
| .LP |
| See the "scrolledtext" class manual entry for details on the inherited options. |
| .LP |
| .nf |
| .ta 4c 8c 12c |
| \fBsticky\fR |
| .fi |
| .LP |
| See the "labeledwidget" class manual entry for details on the inherited options. |
| .SH "WIDGET-SPECIFIC OPTIONS" |
| .LP |
| .nf |
| Name: \fBfeedback\fR |
| Class: \fBFeedBack\fR |
| Command-Line Switch: \fB-feedback\fR |
| .fi |
| .IP |
| Specifies the callback command to use to give feedback on current |
| status. The command is executed in the form \fIcommand\fR \fI<number of |
| characters remaining>\fR |
| .LP |
| .nf |
| Name: \fBfixedfont\fR |
| Class: \fBFixedFont\fR |
| Command-Line Switch: \fB-fixedfont\fR |
| .fi |
| .IP |
| Specifies the name of the font to be used for fixed-width character |
| text (such as <pre>...</pre> or <tt>...</tt>.) The size, style, and |
| other font attributes are determined by the format tags in the |
| document. The default is courier. |
| .LP |
| .nf |
| Name: \fBfontname\fR |
| Class: \fBFontName\fR |
| Command-Line Switch: \fB-fontname\fR |
| .fi |
| .IP |
| Specifies the name of the font to be used for normal-width character |
| spaced text. The size, style, and other font attributes are |
| determined by the format tags in the document. The default is times. |
| .LP |
| .nf |
| Name: \fBfontsize\fR |
| Class: \fBFontSize\fR |
| Command-Line Switch: \fB-fontsize\fR |
| .fi |
| .IP |
| Specifies the general size of the fonts used. One of small, medium, |
| large, or huge. The default is medium. |
| .LP |
| .nf |
| Name: \fBforeground\fR |
| Class: \fBForeground\fR |
| Command-Line Switch: \fB-foreground\fR |
| .fi |
| .IP |
| Specifies the color of text other than hypertext links, in any |
| of the forms acceptable to \fBTk_GetColor\fR. This value may |
| be overridden in a particular document by the \fItext\fR attribute |
| of the \fBBody\fR HTML tag. |
| .LP |
| .nf |
| Name: \fBlink\fR |
| Class: \fBLink\fR |
| Command-Line Switch: \fB-link\fR |
| .fi |
| .IP |
| Specifies the default color of hypertext links in any of the forms |
| acceptable to \fBTk_GetColor\fR. This value may be overridden in a |
| particular document by the \fIlink\fR attribute of the \fBBody\fR |
| HTML tag. The default is blue. |
| .LP |
| .nf |
| Name: \fBlinkcommand\fR |
| Class: \fBLinkCommand\fR |
| Command-Line Switch: \fB-linkcommand\fR |
| .fi |
| .IP |
| Specifies the command to execute when the user clicks on a hypertext |
| link. Execution is of the form \fBlinkcommand href\fR, where \fBhref\fR is |
| the value given in the \fIhref\fR attribute of the \fBA\fR HTML tag. |
| .LP |
| .nf |
| Name: \fBalink\fR |
| Class: \fBalink\fR |
| Command-Line Switch: \fB-alink\fR |
| .fi |
| .IP |
| Specifies the color of hypertext links when the cursor is over the link |
| in any of the forms acceptable to \fBTk_GetColor\fR. The default is red. |
| .LP |
| .nf |
| Name: \fBtextBackground\fR |
| Class: \fBBackground\fR |
| Command-Line Switch: \fB-textbackground\fR |
| .fi |
| .IP |
| Specifies the background color for the text area in any of |
| the forms acceptable to \fBTk_GetColor\fR. This value may be |
| overridden in a particular document by the \fIbgcolor\fR attribute |
| of the \fBBody\fR HTML tag. |
| .LP |
| .nf |
| Name: \fBunknownimage\fR |
| Class: \fBUnknownImage\fR |
| Command-Line Switch: \fB-unknownimage\fR |
| .fi |
| .IP |
| Specifies the name of the image file to display when an \fBimg\fR |
| specified in the html document cannot be loaded. |
| .LP |
| .nf |
| Name: \fBupdate\fR |
| Class: \fBUpdate\fR |
| Command-Line Switch: \fB-alink\fR |
| .fi |
| .IP |
| A boolean value indicating whether to call update during html rendering. |
| .LP |
| .BE |
| |
| .SH DESCRIPTION |
| .PP |
| The \fBiwidgets::scrolledhtml\fR command creates |
| a scrolled text widget with the additional capability to display |
| html formatted documents. |
| An import method is provided to read an html document file, and |
| a render method is provided to display a html formatted text string. |
| |
| .SH "METHODS" |
| .PP |
| The \fBiwidgets::scrolledhtml\fR command creates a new Tcl command whose |
| name is \fIpathName\fR. This |
| command may be used to invoke various |
| operations on the widget. It has the following general form: |
| .DS C |
| \fIpathName option \fR?\fIarg arg ...\fR? |
| .DE |
| \fIOption\fR and the \fIarg\fRs |
| determine the exact behavior of the command. The following |
| commands are possible for scrolledhtml widgets: |
| .SH "ASSOCIATED METHODS" |
| .LP |
| .nf |
| .ta 4c 8c 12c |
| \fBbbox\fR \fBcompare\fR \fBdebug\fR \fBdelete\fR |
| \fBdlineinfo\fR \fBget\fR \fBindex\fR \fBinsert\fR |
| \fBmark\fR \fBscan\fR \fBsearch\fR \fBsee\fR |
| \fBtag\fR \fBwindow\fR \fBxview\fR \fByview\fR |
| .fi |
| .LP |
| See the "text" manual entry for details on the standard methods. |
| .SH "INHERITED METHODS" |
| .LP |
| .nf |
| .ta 4c 8c 12c |
| \fBexport\fR \fBclear\fR |
| .fi |
| .LP |
| See the "scrolledhtml" manual entry for details on the inherited methods. |
| |
| .SH "WIDGET-SPECIFIC METHODS" |
| .TP |
| \fIpathName \fBcget\fR \fIoption\fR |
| Returns the current value of the configuration option given |
| by \fIoption\fR. |
| \fIOption\fR may have any of the values accepted by the \fBiwidgets::scrolledhtml\fR |
| command. |
| .TP |
| \fIpathName\fR \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? |
| Query or modify the configuration options of the widget. |
| If no \fIoption\fR is specified, returns a list describing all of |
| the available options for \fIpathName\fR (see \fBTk_ConfigureInfo\fR for |
| information on the format of this list). If \fIoption\fR is specified |
| with no \fIvalue\fR, then the command returns a list describing the |
| one named option (this list will be identical to the corresponding |
| sublist of the value returned if no \fIoption\fR is specified). If |
| one or more \fIoption\-value\fR pairs are specified, then the command |
| modifies the given widget option(s) to have the given value(s); in |
| this case the command returns an empty string. |
| \fIOption\fR may have any of the values accepted by the \fBiwidgets::scrolledhtml\fR |
| command. |
| .TP |
| \fIpathName\fR \fBimport\fR ?\fIoption\fR? \fIhref\fR |
| Load html formatted text from a file. \fIHref\fR must exist. |
| If \fIoption\fR is -link, \fIhref\fR is assumed to be relative |
| to the application's current working directory. Otherwise, |
| \fIhref\fR is assumed to be relative to the path of the last |
| page loaded. \fIHref\fR is either a filename, or a reference |
| of the form \fIfilename\fR#\fIanchorname\fR. In the latter form, |
| fIFilename\fR and/or \fIanchorname\fR may be empty. |
| If \fIfilename\fR is empty, the current document is assumed. |
| If \fIanchorname\fR is empty, the top of the document is assumed. |
| .TP |
| \fIpathName\fR \fBpwd\fR |
| Print the current working directory of the widget, i.e. the directory of the |
| last page loaded. |
| .TP |
| \fIpathName\fR \fBrender\fR \fIhtmltext\fR ?\fIwd\fR? |
| Display HTML formatted text \fIhtmltext\fR. \fIWd\fR gives the base |
| path to use for all links and images in the document. \fIWd\fR defaults |
| to the application's current working directory. |
| .TP |
| \fIpathName\fR \fBtitle\fR |
| Return the title of the current page, as given in the <title>...</title> |
| field in the document. |
| |
| .SH "HTML COMPLIANCE" |
| .LP |
| This widget is compliant with HTML 3.2 with the following exceptions: |
| .LP |
| No features requiring a connection to an http server are supported. |
| .LP |
| Some image alignments aren't supported, because they are not supported by |
| the text widget. |
| .LP |
| The <br> attributes dealing with image alignments aren't supported. |
| .LP |
| Automatic table sizing is not supported very well, due to limitations of the |
| text widget |
| .RE |
| .SH EXAMPLE |
| .DS |
| package require Iwidgets 4.0 |
| option add *textBackground white |
| |
| iwidgets::scrolledhtml .sh -fontname helvetica -linkcommand "this import -link" |
| |
| pack .sh -padx 10 -pady 10 -fill both -expand yes |
| |
| .sh import ~/public_html/index.html |
| .DE |
| .SH BUGS |
| .IP |
| Cells in a table can be caused to overlap. ex: |
| <table border width="100%"> |
| <tr><td>cell1</td><td align=right rowspan=2>cell2</td></tr> |
| <tr><td colspan=2>cell3 w/ overlap</td> |
| </table> |
| It hasn't been fixed because 1) it's a pain to fix, 2) it will slow |
| tables down by a significant amount, and 3) netscape has the same |
| bug, as of V3.01. |
| .SH ACKNOWLEDGEMENTS |
| Sam Shen |
| .IP |
| This code is based largely on his tkhtml.tcl code from tk inspect. Tkhtml |
| is copyright 1995 Lawrence Berkeley Laboratory. |
| .LP |
| .SH AUTHOR |
| Kris Raney |
| .SH KEYWORDS |
| scrolledhtml, html, text, widget |