1 |
578 |
markom |
------------------------------------------------------------------------------
|
2 |
|
|
[incr Widgets] - version 3.0.0
|
3 |
|
|
------------------------------------------------------------------------------
|
4 |
|
|
This version is compatible with itcl3.0
|
5 |
|
|
|
6 |
|
|
Please send general comments or suggestions to mulferts@spd.dsccc.com.
|
7 |
|
|
Should you have an enhancement or comment regarding a specific mega-widget,
|
8 |
|
|
please send email to the author listed in the source header.
|
9 |
|
|
==============================================================================
|
10 |
|
|
Copyright (c) 1995 DSC Technologies Corporation
|
11 |
|
|
==============================================================================
|
12 |
|
|
This software is copyrighted by DSC Technologies and private individual
|
13 |
|
|
contributors. The copyright holder is specifically listed in the header
|
14 |
|
|
of each file. The following terms apply to all files associated with the
|
15 |
|
|
software unless explicitly disclaimed in individual files by private
|
16 |
|
|
contributors.
|
17 |
|
|
|
18 |
|
|
Permission to use, copy, modify, distribute and license this software and
|
19 |
|
|
its documentation for any purpose, and without fee or written agreement
|
20 |
|
|
with DSC, is hereby granted, provided that the above copyright notice
|
21 |
|
|
appears in all copies and that both the copyright notice and warranty
|
22 |
|
|
disclaimer below appear in supporting documentation, and that the names of
|
23 |
|
|
DSC Technologies Corporation or DSC Communications Corporation not be used
|
24 |
|
|
in advertising or publicity pertaining to the software without specific,
|
25 |
|
|
written prior permission.
|
26 |
|
|
|
27 |
|
|
DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
|
28 |
|
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON-INFRINGEMENT.
|
29 |
|
|
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND
|
30 |
|
|
DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
|
31 |
|
|
ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT SHALL DSC BE LIABLE FOR ANY
|
32 |
|
|
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
|
33 |
|
|
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
|
34 |
|
|
CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
|
35 |
|
|
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
36 |
|
|
|
37 |
|
|
RESTRICTED RIGHTS: Use, duplication or disclosure by the government
|
38 |
|
|
is subject to the restrictions as set forth in subparagraph (c) (1) (ii)
|
39 |
|
|
of the Rights in Technical Data and Computer Software Clause as DFARS
|
40 |
|
|
252.227-7013 and FAR 52.227-19.
|
41 |
|
|
==============================================================================
|
42 |
|
|
|
43 |
|
|
OVERVIEW
|
44 |
|
|
------------------------------------------------------------------------------
|
45 |
|
|
- Introduction
|
46 |
|
|
- Distribution
|
47 |
|
|
- Web site
|
48 |
|
|
- Getting started
|
49 |
|
|
- Contributions
|
50 |
|
|
- Acknowledgements
|
51 |
|
|
------------------------------------------------------------------------------
|
52 |
|
|
|
53 |
|
|
|
54 |
|
|
Introduction
|
55 |
|
|
------------------------------------------------------------------------------
|
56 |
|
|
[incr Widgets] is an object-oriented mega-widget set which extends
|
57 |
|
|
Tcl/Tk and is based on [incr Tcl] and [incr Tk]. This set of mega-widgets
|
58 |
|
|
delivers many new, general purpose widgets like option menus, comboboxes,
|
59 |
|
|
selection boxes, and various dialogs whose couterparts are found in Motif
|
60 |
|
|
and Windows. Since [incr Widgets] is based on the [incr Tk] extension, the
|
61 |
|
|
Tk framework of configuration options, widget commands, and default bindings
|
62 |
|
|
is maintained. In other words, each [incr Widgets] mega-widget seamlessly
|
63 |
|
|
blends with the standard Tk widgets. They look, act and feel like Tk
|
64 |
|
|
widgets. In addition, all [incr Widgets] mega-widgets are object oriented and
|
65 |
|
|
may themselves be extended, using either inheritance or composition.
|
66 |
|
|
|
67 |
|
|
[incr Widgets] offers a strong object-oriented foundation which addresses
|
68 |
|
|
the need for a flexible and extensible mega-widget set. Its usage replaces
|
69 |
|
|
common widget combinations with higher level abstractions, simplifying code,
|
70 |
|
|
reducing errors, increasing readability, adding productivity, and promoting
|
71 |
|
|
a singular look-and-feel. The ability to extend [incr Widgets] enables
|
72 |
|
|
developers to create new mega-widgets based on previous work.
|
73 |
|
|
|
74 |
|
|
In short, [incr Widgets] is a library of reusable mega-widgets that can
|
75 |
|
|
be easily extended using composition or inheritance, allowing quicker
|
76 |
|
|
development of large scale applications. Usage drastically reduces
|
77 |
|
|
development time. New dialogs can be created in hours. Whole applications
|
78 |
|
|
in a few days. Reuse becomes a reality. Many projects are benefitting frm
|
79 |
|
|
the intergration of this mega-widget set into their development strategy.
|
80 |
|
|
[incr Widgets] is an [incr Tcl] and [incr Tk] success story. Good products
|
81 |
|
|
come from good foundations.
|
82 |
|
|
|
83 |
|
|
|
84 |
|
|
Distribution
|
85 |
|
|
------------------------------------------------------------------------------
|
86 |
|
|
The [incr Widgets] distribution is included with [incr Tcl] version 2.0
|
87 |
|
|
and greater. It is available via ftp at ftp.neosoft.com/tcl. Consult the
|
88 |
|
|
included release documentation for installation notes. For the latest
|
89 |
|
|
in distribution information, this web site should be consulted.
|
90 |
|
|
|
91 |
|
|
The [incr Tcl] distribution will always include the most current release
|
92 |
|
|
of [incr Widgets] which was possible at the time of its release. It is
|
93 |
|
|
anticipated that [incr Widgets] will change more rapidly than [incr Tcl].
|
94 |
|
|
This being the case, in between [incr Tcl] releases, the latest version
|
95 |
|
|
of [incr Widgets] is also separately available via ftp at the same
|
96 |
|
|
location list above as well as the web site.
|
97 |
|
|
|
98 |
|
|
The version number of [incr Widgets] tracks the release of [incr Tcl]
|
99 |
|
|
for which it is compatible. The version numbering system for [incr Widgets]
|
100 |
|
|
includes an extra number. For example version 2.1.1 of [incr Widgets] is
|
101 |
|
|
compatible with [incr Tcl] 2.1. As the minor number of [incr Tcl] increases
|
102 |
|
|
the second digit of the [incr Widgets] version varies. This makes for
|
103 |
|
|
easy release identification.
|
104 |
|
|
|
105 |
|
|
Web site
|
106 |
|
|
------------------------------------------------------------------------------
|
107 |
|
|
For the most current news regarding [incr Widgets] please consult the web
|
108 |
|
|
set - http://www.tcltk.com/iwidgets. The site contains a lot of good
|
109 |
|
|
information such as tutotials, man pages, and examples. Plus, I'm real
|
110 |
|
|
proud of our new logo. Also, catch our picture under the development
|
111 |
|
|
team link. Many thanks to the good people at Webnet Technologies for
|
112 |
|
|
the excellent web production work. Joe Bob says "Check it out !"
|
113 |
|
|
|
114 |
|
|
|
115 |
|
|
Getting started
|
116 |
|
|
------------------------------------------------------------------------------
|
117 |
|
|
The "doc" directory contains man pages and a technical paper. The man
|
118 |
|
|
pages are installed under the man directory off your --prefix. In
|
119 |
|
|
addition, the makefile includes an install-html target for creating
|
120 |
|
|
a HTML version of the man pages. They are placed under your prefixed
|
121 |
|
|
doc directory.
|
122 |
|
|
|
123 |
|
|
doc/iwidgets.ps ... Updated paper presented at Tcl Workshop 95.
|
124 |
|
|
|
125 |
|
|
doc/*.n ........... Man pages
|
126 |
|
|
|
127 |
|
|
The "demos" directory contains demo scripts for each mega-widget. The
|
128 |
|
|
demos are also installed under the lib directory off your --prefix.
|
129 |
|
|
|
130 |
|
|
demos/catalog ..... Comprehensive demo package which illustrates
|
131 |
|
|
[incr Widgets] usage additionally displaying the
|
132 |
|
|
source.
|
133 |
|
|
|
134 |
|
|
The "tests" directory contains a set of test scripts for [incr Widgets].
|
135 |
|
|
They also make for a great demo of the flexiblity of the mega-widgets.
|
136 |
|
|
Once you've built your itkwish, try firing it up and sourcing "all" in
|
137 |
|
|
the tests directory.
|
138 |
|
|
|
139 |
|
|
|
140 |
|
|
Installation
|
141 |
|
|
------------------------------------------------------------------------------
|
142 |
|
|
[incr Tcl] with [incr Widgets]
|
143 |
|
|
|
144 |
|
|
As previously stated, the latest version of itcl contains the latest
|
145 |
|
|
version of iwidgets. Having the itcl distribution is a prerequsite
|
146 |
|
|
to using iwidgets. Thus, if you don't have itcl follow the these steps
|
147 |
|
|
to acquire itcl and iwidgets.
|
148 |
|
|
|
149 |
|
|
1) Read the distribution section notes above.
|
150 |
|
|
|
151 |
|
|
2) Obtain the [incr Tcl] 3.x distribution from the archive site like this:
|
152 |
|
|
|
153 |
|
|
ftp ftp.neosoft.com
|
154 |
|
|
cd /pub/tcl/sorted/devel/
|
155 |
|
|
binary
|
156 |
|
|
get itcl3.0.tar.gz
|
157 |
|
|
get itcl3.0.README
|
158 |
|
|
quit
|
159 |
|
|
|
160 |
|
|
3) Follow the directions in the itcl README file.
|
161 |
|
|
|
162 |
|
|
If you've already got itcl and have found a newer version of iwidgets
|
163 |
|
|
at neosoft, then follow the following steps.
|
164 |
|
|
|
165 |
|
|
1) Read the distribtion scetion notes above.
|
166 |
|
|
|
167 |
|
|
2) Obtain the [incr Widgets] 3.x.y distribution from the archive site
|
168 |
|
|
like this:
|
169 |
|
|
|
170 |
|
|
ftp ftp.neosoft.com
|
171 |
|
|
cd /pub/tcl/sorted/devel/
|
172 |
|
|
binary
|
173 |
|
|
get iwidgets3.0.1.tar.gz
|
174 |
|
|
quit
|
175 |
|
|
|
176 |
|
|
3) cd to your compatable itcl source directory. For example:
|
177 |
|
|
|
178 |
|
|
cd /usr/local/src/itcl3.0
|
179 |
|
|
|
180 |
|
|
4) Uncompress and untar the iwidgets distribution:
|
181 |
|
|
|
182 |
|
|
gunzip iwidgets3.0.1.tar.gz
|
183 |
|
|
tar xvf iwidgets3.0.1.tar
|
184 |
|
|
|
185 |
|
|
5) Run the configuration script:
|
186 |
|
|
|
187 |
|
|
cd iwidgets3.0.1
|
188 |
|
|
./configure
|
189 |
|
|
|
190 |
|
|
or, for systems that don't recognize "#!" in shell scripts:
|
191 |
|
|
|
192 |
|
|
cd itcl3.0
|
193 |
|
|
/bin/sh ./configure
|
194 |
|
|
|
195 |
|
|
By default, the configuration script will set things up
|
196 |
|
|
to be installed in "/usr/local". You can change this
|
197 |
|
|
by specifying a different "prefix" in the "configure" command.
|
198 |
|
|
You'll want to use the same value you used for the prefix in
|
199 |
|
|
the configuration of your itcl3.0 distribution.
|
200 |
|
|
|
201 |
|
|
./configure --prefix=/your/install/path
|
202 |
|
|
|
203 |
|
|
You can also add options for a particular "cc" compiler and
|
204 |
|
|
compiler flags:
|
205 |
|
|
|
206 |
|
|
./configure --with-cc=gcc --with-cflags=-g
|
207 |
|
|
|
208 |
|
|
The "configure" script generates new Makefiles from their
|
209 |
|
|
respective templates (Makefile.in).
|
210 |
|
|
|
211 |
|
|
6) Build the iwidgets library:
|
212 |
|
|
|
213 |
|
|
make all
|
214 |
|
|
|
215 |
|
|
7) Install the iwidgets library, man pages and script files.
|
216 |
|
|
|
217 |
|
|
make install
|
218 |
|
|
|
219 |
|
|
8) Optionally, you can install the html'ed version of the iwidgets
|
220 |
|
|
man pages:
|
221 |
|
|
|
222 |
|
|
make install-html
|
223 |
|
|
|
224 |
|
|
|
225 |
|
|
Contributions
|
226 |
|
|
------------------------------------------------------------------------------
|
227 |
|
|
I feel that [incr Widgets] is a good start in the direction of establishing
|
228 |
|
|
a strong set of object-oriented mega-widgets, but I swear that everytime I
|
229 |
|
|
go back and look at the source I see an even better more simplier way
|
230 |
|
|
something could have been accomplished. Should anybody within the Tcl/Tk
|
231 |
|
|
community come upon an even better way, a great enhancement, or an awesome
|
232 |
|
|
new mega-widget altogether, please don't hesitate to send it to the author
|
233 |
|
|
listed in the header or myself, mulferts@spd.dsccc.com, as moderator. I or
|
234 |
|
|
any of the development team members are always available via email for a
|
235 |
|
|
technical interchange of ideas.
|
236 |
|
|
|
237 |
|
|
[incr Widgets] is a continuing effort. We have many new mega-widgets
|
238 |
|
|
currently under development and are actively looking for volunteers willing
|
239 |
|
|
to contribute their own [incr Tk] based mega-widgets for inclusion into
|
240 |
|
|
the [incr Widgets] set. The distribution is moderated. Contributed
|
241 |
|
|
mega-widgets should be of good quality and complete with documentation,
|
242 |
|
|
tests, and demonstrations. Please follow the coding style found in the
|
243 |
|
|
distribution source. This includes man page and test script formats as well.
|
244 |
|
|
The languages and extensions on which [incr Widgets] is based are of high
|
245 |
|
|
standards. [incr Widgets] strives to attain this same level. Be fore
|
246 |
|
|
warned, the moderator is a facist.
|
247 |
|
|
|
248 |
|
|
|
249 |
|
|
Acknowledgements
|
250 |
|
|
------------------------------------------------------------------------------
|
251 |
|
|
Thanks to the original develment team, comprised of Mark Ulferts, Sue
|
252 |
|
|
Yockey, Bret Schuhmacher, Alfredo Jahn, John Sigler, and Bill Scott. Also
|
253 |
|
|
thanks to Mark Harrison for his influence, confidence, and ideas.
|
254 |
|
|
|
255 |
|
|
Thanks also to the new set of contributors which include John Tucker,
|
256 |
|
|
Mitch Gorman, John Reekie, Alfredo Jahn, Ken Copeland, Tako Schotanus,
|
257 |
|
|
Tony Parent and Michael McLennan
|
258 |
|
|
|
259 |
|
|
Thanks to Michael McLennan, creator of [incr Tcl] and [incr Tk], for the
|
260 |
|
|
beta copies, training, assistance, and his infectious enthusiasm.
|
261 |
|
|
|
262 |
|
|
Thanks to DSC Communications for picking up the copyright and supporting
|
263 |
|
|
the public release of this software.
|
264 |
|
|
|
265 |
|
|
Thanks to John P. Davis for creating the [incr Widgets] "Flaming Toaster"
|
266 |
|
|
logo which can be seen at http://www.tcltk.com/iwidgets
|
267 |
|
|
|
268 |
|
|
Thanks to WebNet Technologies for their assistance is designing the [incr
|
269 |
|
|
Widgets] web site, as well as hosting it.
|
270 |
|
|
|
271 |
|
|
Special thanks to my wife Karen for supporting this effort and to our two
|
272 |
|
|
girls, Katelyn and Bailey, who occasionally shared the PC with me. Also
|
273 |
|
|
thanks to my Discman and its relentless power supply as well as my rock
|
274 |
|
|
and roll CD collection. No music, no software.
|
275 |
|
|
|
276 |
|
|
--
|
277 |
|
|
____________________________________________________________________________
|
278 |
|
|
_/_/ _/_/ _/ _/ _/ Mark L. Ulferts
|
279 |
|
|
_/ _/ _/ _/ _/ _/ _/ ulferts@swbell.net
|
280 |
|
|
_/ _/_/ _/ _/ _/ _/ mulferts@austin.dsccc.com
|
281 |
|
|
_/ _/ _/ _/ _/_/_/ _/ _/_/_/_/ _/ DSC Communications Corp, Austin Texas
|
282 |
|
|
____________________________________________________________________________
|