'\" '\" Copyright (c) 1995 DSC Technologies Corporation '\" '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" '\" @(#) messagebox.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::messagebox iwid .BS '\" Note: do not modify the .SH NAME line immediately below! .SH NAME iwidgets::messagebox \- Create and manipulate a messagebox text widget .SH SYNOPSIS \fBiwidgets::messagebox\fI \fIpathName \fR?\fIoptions\fR? .SH "INHERITANCE" itk::Widget <- iwidgets::Labeledwidget <- iwidgets::Scrolledwidget <- iwidgets::Messagebox .SH "STANDARD OPTIONS" .LP .nf .ta 4c 8c 12c \fB activeBackground activeForeground background borderWidth cursor exportSelection font foreground highlightColor highlightThickness padX padY relief setGrid\fR .fi .LP See the "options" manual entry for details on the standard options. .SH "ASSOCIATED OPTIONS" .LP .nf .ta 4c 8c 12c \fBlabelBitmap\fR \fBlabelFont\fR \fBlabelImage\fR \fBlabelMargin\fR \fBlabelPos\fR \fBlabelText\fR \fBlabelVariable\fR .fi .LP See the "labeledwidget" class manual entry for details on the above 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 \fBheight\fR \fBhscrollMode\fR \fBsbWidth\fR \fBscrollMargin\fR \fBtextBackground\fR \fBvisibleItems\fR \fBvscrollMode\fR \fBwidth\fR .fi .LP See the "scrolledtext" widget manual entry for details on the above associated options. .LP .nf .ta 4c 8c 12c \fBspacing1\fR \fBspacing2\fR \fBspacing3\fR .fi .LP See the "text" widget manual entry for details on the above associated options. .SH "WIDGET-SPECIFIC OPTIONS" .LP .nf Name: \fBfileName\fR Class: \fBFileName\fR Command-Line Switch: \fB-filename\fR .fi .IP Specifies the filename to be displayed in the file selection dialog when it pops up during a save of the messagebox contents operation. .LP .nf Name: \fBmaxLines\fR Class: \fBMaxLines\fR Command-Line Switch: \fB-maxlines\fR .fi .IP Specifies the maximum number of lines allowed in the text area of the messagebox. When this limit is reached, the oldest line will be deleted such that the total number of lines remains \fImaxlines\fR. .LP .nf Name: \fBsaveDir\fR Class: \fBSaveDir\fR Command-Line Switch: \fB-savedir\fR .fi .IP Specifies the default directory to display when the file selection dialog pops up during a save of the messagebox contents operation. If this parameter is not specified, then the files in the current working directory are displayed. .LP .BE .SH DESCRIPTION .PP The \fBiwidgets::messagebox\fR command creates a scrolled information messages area widget. Message types can be user defined and configured. Their options include foreground, background, font, bell, and their display mode of on or off. This allows message types to defined as needed, removed when no longer so, and modified when necessary. An export method is provided for file I/O. .PP The number of lines displayed may be limited with the default being 1000. When this limit is reached, the oldest line is removed. A popup menu which appears when the right mouse button has been pressed in the message area has been predefined. The contents of the popup menu by default support clearing the area and saving its contents to a file. Additional operations may be defined or existing operations removed by using the component command to access the popup menu. .SH "MESSAGE TYPES" .PP The display characteristics of messages issued to the messagebox vary with the message type. Types are defined by the user and they may be added, removed, and configured. The options of the message type control the display include the following: .TP \fB\-background \fIcolor\fR \fIColor\fR specifies the background color to use for characters associated with the message type. It may have any of the forms accepted by \fBTk_GetColor\fR. .TP \fB\-bell \fIboolean\fR Specifies whether or not to ring the bell whenenver a message of this type is issued. \fIBoolean\fR may have any of the forms accepted by \fBTk_GetBoolean\fR. The default is 0. .TP \fB-font\ \fIfontName\fR \fIFontName\fR is the name of a font to use for drawing characters. It may have any of the forms accepted by Tk_GetFontStruct. .TP \fB\-foreground \fIcolor\fR \fIColor\fR specifies the foreground color to use for characters associated with the message type. It may have any of the forms accepted by \fBTk_GetColor\fR. .TP \fB\-show \fIboolean\fR Specifies whether of not to display this message type when issued. \fIBoolean\fR may have any of the forms accepted by \fBTk_GetBoolean\fR. The default is 1. .SH "METHODS" .PP The \fBiwidgets::messagebox\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 messagebox widgets: .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::messagebox\fR command. .TP \fIpathName \fBclear\fR Clear the messagebox of all messages. .TP \fIpathName \fBexport\fR \fIfilename\fR Write text to a file. If \fIfilename\fR exists then contents are replaced with text widget contents. .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::messagebox\fR command. .TP \fIpathName \fBtype\fR \fIoption\fR \fImsgtype\fR ?\fIarg arg ...\fR? This command is used to manipulate message types. The behavior of the command depends on the option argument that follows the type keyword. The following forms of the command are supported: .RS .TP .TP \fIpathName \fBtype add\fR \fImsgtype\fR ?\fIoption value ...\fR? Adds a new message type given by \fImsgtype\fR with the display properties defined by the option value pairs. See MESSAGE TYPES for information on the options that are supported. .TP \fIpathName \fBtype cget\fR \fImsgtype option\fR Returns the value of a configuration option for a message type. \fIMsgtype\fR identifies the message type, and \fIoption\fR specifies a particular configuration option, which must be one of the ones listed in the section MESSAGE TYPES. .TP \fIpathName \fBtype configure \fImsgtype\fR ?\fIoption value ...\fR? Query or modify the configuration options for a message type. If no \fIoption\fR is specified, returns a list describing all of the available options for the message type \fImsgtype\fR. If \fIoption\fR is specified with no \fIvalue\fR, then the command returns a list describing the one named option. If one or more \fIoption\-value\fR pairs are specified, then the command modifies the given option(s) to have the given value(s); in this case the command returns an empty string. See MESSAGE TYPES for information on the options that are supported. \fIpathName \fBtype remove\fR \fImsgtype\fR Removes an existing message type given by \fImsgtype\fR. .RE .TP \fIpathName \fBissue\fR \fIstring\fR \fI?level?\fR \fI?tags?\fR Print a \fIstring\fR to the text area at the given level and with any additional tags specified. .SH "COMPONENTS" .LP .nf Name: \fBitemMenu\fR Class: \fBMenu\fR .fi .IP This is the popup menu that gets displayed when you right-click in the text area of the messagebox. Its contents may be modified via the component command. .LP .nf Name: \fBtext\fR Class: \fBScrolledtext\fR .fi .IP The text component is the scrolledtext widget. See the "scrolledtext" widget manual entry for details on the text component item. .fi .SH EXAMPLE .DS package require Iwidgets 4.0 iwidgets::messagebox .mb -hscrollmode dynamic \\ -labeltext "Messages" -labelpos n \\ -height 120 -width 550 -savedir "/tmp" -textbackground #d9d9d9 pack .mb -padx 5 -pady 5 -fill both -expand yes .mb type add ERROR -background red -foreground white -bell 1 .mb type add WARNING -background yellow -foreground black .mb type add INFO -background white -foreground black .mb issue "This is an error message in red with a beep" ERROR .mb issue "This warning message in yellow" WARNING .mb issue "This is an informational message" INFO .DE .SH AUTHOR Alfredo Jahn V .DE Mark L. Ulferts .LP .SH KEYWORDS messagebox, scrolledtext, text, widget