3 # This demonstration script creates a text widget that illustrates the
4 # various display styles that may be set for tags.
6 # RCS: @(#) $Id: style.tcl,v 1.2 1998/09/14 18:23:30 stanton Exp $
8 if {![info exists widgetDemo
]} {
9 error "This script should be run from the \"widget\" demo."
15 wm title
$w "Text Demonstration - Display Styles"
16 wm iconname
$w "style"
20 pack $w.buttons
-side bottom
-fill x
-pady 2m
21 button $w.buttons.dismiss
-text Dismiss
-command "destroy $w"
22 button $w.buttons.code
-text "See Code" -command "showCode $w"
23 pack $w.buttons.dismiss
$w.buttons.code
-side left
-expand 1
25 text $w.
text -yscrollcommand "$w.scroll set" -setgrid true
\
26 -width 70 -height 32 -wrap word
27 scrollbar $w.scroll
-command "$w.text yview"
28 pack $w.scroll
-side right
-fill y
29 pack $w.
text -expand yes
-fill both
31 # Set up display styles
33 $w.
text tag configure bold
-font {Courier
12 bold italic
}
34 $w.
text tag configure big
-font {Courier
14 bold
}
35 $w.
text tag configure verybig
-font {Helvetica
24 bold
}
36 if {[winfo depth
$w] > 1} {
37 $w.
text tag configure color1
-background #a0b7ce
38 $w.
text tag configure color2
-foreground red
39 $w.
text tag configure raised
-relief raised
-borderwidth 1
40 $w.
text tag configure sunken
-relief sunken
-borderwidth 1
42 $w.
text tag configure color1
-background black
-foreground white
43 $w.
text tag configure color2
-background black
-foreground white
44 $w.
text tag configure raised
-background white
-relief raised
\
46 $w.
text tag configure sunken
-background white
-relief sunken
\
49 $w.
text tag configure bgstipple
-background black
-borderwidth 0 \
51 $w.
text tag configure fgstipple
-fgstipple gray50
52 $w.
text tag configure underline
-underline on
53 $w.
text tag configure overstrike
-overstrike on
54 $w.
text tag configure right
-justify right
55 $w.
text tag configure center
-justify center
56 $w.
text tag configure super
-offset 4p
-font {Courier
10}
57 $w.
text tag configure sub
-offset -2p -font {Courier
10}
58 $w.
text tag configure margins
-lmargin1 12m
-lmargin2 6m
-rmargin 10m
59 $w.
text tag configure spacing
-spacing1 10p
-spacing2 2p
\
60 -lmargin1 12m
-lmargin2 6m
-rmargin 10m
62 $w.
text insert end
{Text widgets like this one allow you to display information in a
63 variety of styles. Display styles are controlled using a mechanism
65 $w.
text insert end tags bold
66 $w.
text insert end
{. Tags are just textual names that you can apply to one
67 or more ranges of characters within a
text widget. You can configure
68 tags with various display styles. If you do this
, then the tagged
69 characters will be displayed with the styles you chose. The
70 available display styles are
:
72 $w.
text insert end
"\n1. Font." big
73 $w.
text insert end
" You can choose any X font, "
74 $w.
text insert end large verybig
75 $w.
text insert end
" or "
76 $w.
text insert end
"small.\n"
77 $w.
text insert end
"\n2. Color." big
78 $w.
text insert end
" You can change either the "
79 $w.
text insert end background color1
80 $w.
text insert end
" or "
81 $w.
text insert end foreground color2
82 $w.
text insert end
"\ncolor, or "
83 $w.
text insert end both
{color1 color2
}
84 $w.
text insert end
".\n"
85 $w.
text insert end
"\n3. Stippling." big
86 $w.
text insert end
" You can cause either the "
87 $w.
text insert end background bgstipple
88 $w.
text insert end
" or "
89 $w.
text insert end foreground fgstipple
91 information to be drawn with a stipple fill instead of a solid fill.
93 $w.
text insert end
"\n4. Underlining." big
94 $w.
text insert end
" You can "
95 $w.
text insert end underline underline
96 $w.
text insert end
" ranges of text.\n"
97 $w.
text insert end
"\n5. Overstrikes." big
98 $w.
text insert end
" You can "
99 $w.
text insert end
"draw lines through" overstrike
100 $w.
text insert end
" ranges of text.\n"
101 $w.
text insert end
"\n6. 3-D effects." big
102 $w.
text insert end
{ You can arrange
for the background to be drawn
103 with a border that makes characters appear either
}
104 $w.
text insert end raised raised
105 $w.
text insert end
" or "
106 $w.
text insert end sunken sunken
107 $w.
text insert end
".\n"
108 $w.
text insert end
"\n7. Justification." big
109 $w.
text insert end
" You can arrange for lines to be displayed\n"
110 $w.
text insert end
"left-justified,\n"
111 $w.
text insert end
"right-justified, or\n" right
112 $w.
text insert end
"centered.\n" center
113 $w.
text insert end
"\n8. Superscripts and subscripts." big
114 $w.
text insert end
" You can control the vertical\n"
115 $w.
text insert end
"position of text to generate superscript effects like 10"
116 $w.
text insert end
"n" super
117 $w.
text insert end
" or\nsubscript effects like X"
118 $w.
text insert end
"i" sub
119 $w.
text insert end
".\n"
120 $w.
text insert end
"\n9. Margins." big
121 $w.
text insert end
" You can control the amount of extra space left"
122 $w.
text insert end
" on\neach side of the text:\n"
123 $w.
text insert end
"This paragraph is an example of the use of " margins
124 $w.
text insert end
"margins. It consists of a single line of text " margins
125 $w.
text insert end
"that wraps around on the screen. There are two " margins
126 $w.
text insert end
"separate left margin values, one for the first " margins
127 $w.
text insert end
"display line associated with the text line, " margins
128 $w.
text insert end
"and one for the subsequent display lines, which " margins
129 $w.
text insert end
"occur because of wrapping. There is also a " margins
130 $w.
text insert end
"separate specification for the right margin, " margins
131 $w.
text insert end
"which is used to choose wrap points for lines.\n" margins
132 $w.
text insert end
"\n10. Spacing." big
133 $w.
text insert end
" You can control the spacing of lines with three\n"
134 $w.
text insert end
"separate parameters. \"Spacing1\" tells how much "
135 $w.
text insert end
"extra space to leave\nabove a line, \"spacing3\" "
136 $w.
text insert end
"tells how much space to leave below a line,\nand "
137 $w.
text insert end
"if a text line wraps, \"spacing2\" tells how much "
138 $w.
text insert end
"space to leave\nbetween the display lines that "
139 $w.
text insert end
"make up the text line.\n"
140 $w.
text insert end
"These indented paragraphs illustrate how spacing " spacing
141 $w.
text insert end
"can be used. Each paragraph is actually a " spacing
142 $w.
text insert end
"single line in the text widget, which is " spacing
143 $w.
text insert end
"word-wrapped by the widget.\n" spacing
144 $w.
text insert end
"Spacing1 is set to 10 points for this text, " spacing
145 $w.
text insert end
"which results in relatively large gaps between " spacing
146 $w.
text insert end
"the paragraphs. Spacing2 is set to 2 points, " spacing
147 $w.
text insert end
"which results in just a bit of extra space " spacing
148 $w.
text insert end
"within a pararaph. Spacing3 isn't used " spacing
149 $w.
text insert end
"in this example.\n" spacing
150 $w.
text insert end
"To see where the space is, select ranges of " spacing
151 $w.
text insert end
"text within these paragraphs. The selection " spacing
152 $w.
text insert end
"highlight will cover the extra space." spacing