]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/manual.tex
added unit tests for wxStringStreams
[wxWidgets.git] / docs / latex / wx / manual.tex
CommitLineData
b8de493f 1\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{report}
f6bcfd97 2% JACS: doesn't make it through Tex2RTF, sorry. I will put it into texhelp.sty
81d66cf3 3% since Tex2RTF doesn't parse it.
b8de493f 4% BTW, style MUST be report for it to work for Tex2RTF.
e14dccff 5%KB:
81d66cf3
JS
6%\addtolength{\textwidth}{1in}
7%\addtolength{\oddsidemargin}{-0.5in}
8%\addtolength{\topmargin}{-0.5in}
9%\addtolength{\textheight}{1in}
10%\sloppy
e14dccff 11%end of my changes
a660d684
KB
12\newcommand{\indexit}[1]{#1\index{#1}}%
13\newcommand{\pipe}[0]{$\|$\ }%
14\definecolour{black}{0}{0}{0}%
15\definecolour{cyan}{0}{255}{255}%
16\definecolour{green}{0}{255}{0}%
17\definecolour{magenta}{255}{0}{255}%
18\definecolour{red}{255}{0}{0}%
19\definecolour{blue}{0}{0}{200}%
20\definecolour{yellow}{255}{255}{0}%
21\definecolour{white}{255}{255}{255}%
22%
23\input psbox.tex
7af3ca16 24\input ltx.tex
a660d684
KB
25% Remove this for processing with dvi2ps instead of dvips
26%\special{!/@scaleunit 1 def}
27\parskip=10pt
28\parindent=0pt
c4839ccf 29\title{wxWidgets 2.5.2: A portable C++ and Python GUI toolkit}
750b78ba 30\winhelponly{\author{by Julian Smart et al
a660d684
KB
31%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
32}}
b32c6ff0
RD
33\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin,
34Robin Dunn, et al}
c4839ccf 35\date{May 2004}
a660d684
KB
36}
37\makeindex
38\begin{document}
39\maketitle
40\pagestyle{fancyplain}
41\bibliographystyle{plain}
42\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}}
43\setfooter{\thepage}{}{}{}{}{\thepage}%
44\pagenumbering{roman}
45\tableofcontents
46
47% A special table of contents for the WinHelp manual
48\begin{comment}
49\winhelponly{
fc2171bd 50\chapter{wxWidgets class library reference}\label{winhelpcontents}
a660d684 51
7af3ca16 52\centerline{
a660d684
KB
53%\image{}{wxwin.wmf}
54}%
55
56\sethotspotcolour{off}%
57\sethotspotunderline{on}%
58\large{
59\image{}{cpp.bmp} \helpref{Alphabetical class reference}{classref}
60
61\image{}{shelves.bmp} \helpref{Classes by category}{classesbycat}
62
63\image{}{book1.bmp} \helpref{Topic overviews}{overviews}
64
fc2171bd 65\image{}{hand1.bmp} \helpref{Guide to wxWidgets}{wxwinchapters}
a660d684
KB
66}
67\sethotspotcolour{on}%
68\sethotspotunderline{on}%
69
fc2171bd 70\chapter*{Overview of wxWidgets}\label{wxwinchapters}
a660d684
KB
71
72\helpref{Introduction}{introduction}\\
73%\helpref{Resource guide}{resguide}\\
74%\helpref{Comparison with other GUI models}{comparison}\\
fc2171bd 75%\helpref{Multi-platform development with wxWidgets}{multiplat}\\
a660d684 76%\helpref{Tutorial}{tutorial}\\
fc2171bd 77\helpref{The wxWidgets resource system}{resourceformats}\\
a660d684
KB
78\helpref{Utilities}{utilities}\\
79\helpref{Programming strategies}{strategies}\\
80\helpref{Bugs and future directions}{bugs}\\
81\helpref{References}{bibliography}
82}
83\end{comment}
84
569ef72a 85\chapter{Copyright notice}\label{copyrightnotice}
a660d684
KB
86\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}%
87\setfooter{\thepage}{}{}{}{}{\thepage}%
88
89\begin{center}
ba637f22 90Copyright (c) 1992-2002 Julian Smart, Robert Roebling, Vadim Zeitlin and other
fc2171bd 91members of the wxWidgets team\\
154f22b3 92Portions (c) 1996 Artificial Intelligence Applications Institute\\
a660d684
KB
93\end{center}
94
fc2171bd 95Please also see the wxWidgets license files (preamble.txt, lgpl.txt, gpl.txt, license.txt,
62448488 96licendoc.txt) for conditions of software and documentation use.
c4839ccf
JS
97Note that we use the old name wxWindows in the license, pending
98recognition of the new name by OSI.
a660d684 99
569ef72a 100\section*{wxWindows Library License, Version 3}\label{wxlicense}
605d715d 101
abfff787 102Copyright (c) 1992-2004 Julian Smart, Robert Roebling, Vadim Zeitlin et al.
ccaaf5b0 103
457e6c54
JS
104Everyone is permitted to copy and distribute verbatim copies
105of this license document, but changing it is not allowed.
605d715d
VS
106
107\begin{center}
108WXWINDOWS LIBRARY LICENSE\\
109TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
110\end{center}
111
457e6c54
JS
112This library is free software; you can redistribute it and/or modify it
113under the terms of the GNU Library General Public License as published by
114the Free Software Foundation; either version 2 of the License, or (at
115your option) any later version.
116
117This library is distributed in the hope that it will be useful, but
118WITHOUT ANY WARRANTY; without even the implied warranty of
119MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
120General Public License for more details.
121
122You should have received a copy of the GNU Library General Public License
123along with this software, usually in a file named COPYING.LIB. If not,
124write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
125Boston, MA~02111-1307 USA.
126
127EXCEPTION NOTICE
128
1291. As a special exception, the copyright holders of this library give
130permission for additional uses of the text contained in this release of
c4839ccf 131the library as licensed under the wxWindows Library License, applying
457e6c54
JS
132either version 3 of the License, or (at your option) any later version of
133the License as published by the copyright holders of version 3 of the
134License document.
135
1362. The exception is that you may create binary object code versions of any
137works using this library or based on this library, and use, copy, modify,
138link and distribute such binary object code files unrestricted under terms
139of your choice.
140
1413. If you copy code from files distributed under the terms of the GNU
142General Public License or the GNU Library General Public License into a
143copy of this library, as this license permits, the exception does not
144apply to the code that you add in this way. To avoid misleading anyone as
145to the status of such modified files, you must delete this exception
146notice from such code and/or adjust the licensing conditions notice
147accordingly.
148
1494. If you write modifications of your own for this library, it is your
150choice whether to permit this exception to apply to your modifications.
151If you do not wish that, you must delete the exception notice from such
152code and/or adjust the licensing conditions notice accordingly.
ccaaf5b0 153
569ef72a 154\section*{GNU Library General Public License, Version 2}\label{gnulicense}
ccaaf5b0 155
457e6c54
JS
156Copyright (C) 1991 Free Software Foundation, Inc.
157675 Mass Ave, Cambridge, MA 02139, USA
605d715d 158
457e6c54
JS
159Everyone is permitted to copy and distribute verbatim copies
160of this license document, but changing it is not allowed.
ccaaf5b0 161
457e6c54
JS
162[This is the first released version of the library GPL. It is
163numbered 2 because it goes with version 2 of the ordinary GPL.]
ccaaf5b0 164
605d715d 165\wxheading{Preamble}
ccaaf5b0 166
457e6c54 167The licenses for most software are designed to take away your
605d715d 168freedom to share and change it. By contrast, the GNU General Public
ccaaf5b0 169Licenses are intended to guarantee your freedom to share and change
605d715d 170free software -- to make sure the software is free for all its users.
ccaaf5b0 171
457e6c54 172This license, the Library General Public License, applies to some
ccaaf5b0 173specially designated Free Software Foundation software, and to any
457e6c54 174other libraries whose authors decide to use it. You can use it for
ccaaf5b0
RR
175your libraries, too.
176
457e6c54
JS
177When we speak of free software, we are referring to freedom, not
178price. Our General Public Licenses are designed to make sure that you
ccaaf5b0
RR
179have the freedom to distribute copies of free software (and charge for
180this service if you wish), that you receive source code or can get it
181if you want it, that you can change the software or use pieces of it
182in new free programs; and that you know you can do these things.
183
457e6c54 184To protect your rights, we need to make restrictions that forbid
ccaaf5b0
RR
185anyone to deny you these rights or to ask you to surrender the rights.
186These restrictions translate to certain responsibilities for you if
187you distribute copies of the library, or if you modify it.
188
457e6c54 189For example, if you distribute copies of the library, whether gratis
ccaaf5b0 190or for a fee, you must give the recipients all the rights that we gave
457e6c54
JS
191you. You must make sure that they, too, receive or can get the source
192code. If you link a program with the library, you must provide
ccaaf5b0
RR
193complete object files to the recipients so that they can relink them
194with the library, after making changes to the library and recompiling
457e6c54 195it. And you must show them these terms so they know their rights.
ccaaf5b0 196
457e6c54 197Our method of protecting your rights has two steps: (1) copyright
ccaaf5b0
RR
198the library, and (2) offer you this license which gives you legal
199permission to copy, distribute and/or modify the library.
200
457e6c54 201Also, for each distributor's protection, we want to make certain
ccaaf5b0 202that everyone understands that there is no warranty for this free
457e6c54 203library. If the library is modified by someone else and passed on, we
ccaaf5b0
RR
204want its recipients to know that what they have is not the original
205version, so that any problems introduced by others will not reflect on
206the original authors' reputations.
207
457e6c54
JS
208Finally, any free program is threatened constantly by software
209patents. We wish to avoid the danger that companies distributing free
ccaaf5b0 210software will individually obtain patent licenses, thus in effect
457e6c54 211transforming the program into proprietary software. To prevent this,
ccaaf5b0
RR
212we have made it clear that any patent must be licensed for everyone's
213free use or not licensed at all.
214
457e6c54
JS
215Most GNU software, including some libraries, is covered by the ordinary
216GNU General Public License, which was designed for utility programs. This
ccaaf5b0 217license, the GNU Library General Public License, applies to certain
457e6c54 218designated libraries. This license is quite different from the ordinary
ccaaf5b0
RR
219one; be sure to read it in full, and don't assume that anything in it is
220the same as in the ordinary license.
221
457e6c54 222The reason we have a separate public license for some libraries is that
ccaaf5b0 223they blur the distinction we usually make between modifying or adding to a
457e6c54 224program and simply using it. Linking a program with a library, without
ccaaf5b0 225changing the library, is in some sense simply using the library, and is
457e6c54 226analogous to running a utility program or application program. However, in
ccaaf5b0
RR
227a textual and legal sense, the linked executable is a combined work, a
228derivative of the original library, and the ordinary General Public License
229treats it as such.
230
457e6c54 231Because of this blurred distinction, using the ordinary General
ccaaf5b0 232Public License for libraries did not effectively promote software
457e6c54 233sharing, because most developers did not use the libraries. We
ccaaf5b0
RR
234concluded that weaker conditions might promote sharing better.
235
457e6c54 236However, unrestricted linking of non-free programs would deprive the
ccaaf5b0 237users of those programs of all benefit from the free status of the
457e6c54 238libraries themselves. This Library General Public License is intended to
ccaaf5b0
RR
239permit developers of non-free programs to use free libraries, while
240preserving your freedom as a user of such programs to change the free
457e6c54 241libraries that are incorporated in them. (We have not seen how to achieve
ccaaf5b0 242this as regards changes in header files, but we have achieved it as regards
457e6c54 243changes in the actual functions of the Library.) The hope is that this
ccaaf5b0
RR
244will lead to faster development of free libraries.
245
457e6c54
JS
246The precise terms and conditions for copying, distribution and
247modification follow. Pay close attention to the difference between a
248"work based on the library" and a "work that uses the library". The
ccaaf5b0
RR
249former contains code derived from the library, while the latter only
250works together with the library.
251
457e6c54 252Note that it is possible for a library to be covered by the ordinary
ccaaf5b0
RR
253General Public License rather than by this special one.
254
605d715d 255\begin{center}
457e6c54
JS
256 GNU LIBRARY GENERAL PUBLIC LICENSE\\
257 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
605d715d 258\end{center}
ccaaf5b0 259
457e6c54 2600. This License Agreement applies to any software library which
ccaaf5b0
RR
261contains a notice placed by the copyright holder or other authorized
262party saying it may be distributed under the terms of this Library
457e6c54 263General Public License (also called "this License"). Each licensee is
ccaaf5b0
RR
264addressed as "you".
265
457e6c54 266A "library" means a collection of software functions and/or data
ccaaf5b0
RR
267prepared so as to be conveniently linked with application programs
268(which use some of those functions and data) to form executables.
269
457e6c54
JS
270The "Library", below, refers to any such software library or work
271which has been distributed under these terms. A "work based on the
ccaaf5b0
RR
272Library" means either the Library or any derivative work under
273copyright law: that is to say, a work containing the Library or a
274portion of it, either verbatim or with modifications and/or translated
457e6c54 275straightforwardly into another language. (Hereinafter, translation is
ccaaf5b0
RR
276included without limitation in the term "modification".)
277
457e6c54
JS
278"Source code" for a work means the preferred form of the work for
279making modifications to it. For a library, complete source code means
ccaaf5b0
RR
280all the source code for all modules it contains, plus any associated
281interface definition files, plus the scripts used to control compilation
282and installation of the library.
283
457e6c54
JS
284Activities other than copying, distribution and modification are not
285covered by this License; they are outside its scope. The act of
ccaaf5b0
RR
286running a program using the Library is not restricted, and output from
287such a program is covered only if its contents constitute a work based
288on the Library (independent of the use of the Library in a tool for
457e6c54 289writing it). Whether that is true depends on what the Library does
ccaaf5b0 290and what the program that uses the Library does.
457e6c54
JS
291
2921. You may copy and distribute verbatim copies of the Library's
ccaaf5b0
RR
293complete source code as you receive it, in any medium, provided that
294you conspicuously and appropriately publish on each copy an
295appropriate copyright notice and disclaimer of warranty; keep intact
296all the notices that refer to this License and to the absence of any
297warranty; and distribute a copy of this License along with the
298Library.
299
457e6c54 300You may charge a fee for the physical act of transferring a copy,
ccaaf5b0
RR
301and you may at your option offer warranty protection in exchange for a
302fee.
303
457e6c54 3042. You may modify your copy or copies of the Library or any portion
ccaaf5b0
RR
305of it, thus forming a work based on the Library, and copy and
306distribute such modifications or work under the terms of Section 1
307above, provided that you also meet all of these conditions:
308
605d715d 309\begin{indented}{1cm}
457e6c54
JS
310a) The modified work must itself be a software library.
311
312b) You must cause the files modified to carry prominent notices
313stating that you changed the files and the date of any change.
314
315c) You must cause the whole of the work to be licensed at no
316charge to all third parties under the terms of this License.
317
318d) If a facility in the modified Library refers to a function or a
319table of data to be supplied by an application program that uses
320the facility, other than as an argument passed when the facility
321is invoked, then you must make a good faith effort to ensure that,
322in the event an application does not supply such function or
323table, the facility still operates, and performs whatever part of
324its purpose remains meaningful.
325
326(For example, a function in a library to compute square roots has
327a purpose that is entirely well-defined independent of the
328application. Therefore, Subsection 2d requires that any
329application-supplied function or table used by this function must
330be optional: if the application does not supply it, the square
331root function must still compute square roots.)
605d715d 332\end{indented}
ccaaf5b0 333
457e6c54 334These requirements apply to the modified work as a whole. If
ccaaf5b0
RR
335identifiable sections of that work are not derived from the Library,
336and can be reasonably considered independent and separate works in
337themselves, then this License, and its terms, do not apply to those
457e6c54 338sections when you distribute them as separate works. But when you
ccaaf5b0
RR
339distribute the same sections as part of a whole which is a work based
340on the Library, the distribution of the whole must be on the terms of
341this License, whose permissions for other licensees extend to the
342entire whole, and thus to each and every part regardless of who wrote
343it.
344
345Thus, it is not the intent of this section to claim rights or contest
346your rights to work written entirely by you; rather, the intent is to
347exercise the right to control the distribution of derivative or
348collective works based on the Library.
349
350In addition, mere aggregation of another work not based on the Library
351with the Library (or with a work based on the Library) on a volume of
352a storage or distribution medium does not bring the other work under
353the scope of this License.
354
457e6c54
JS
3553. You may opt to apply the terms of the ordinary GNU General Public
356License instead of this License to a given copy of the Library. To do
ccaaf5b0
RR
357this, you must alter all the notices that refer to this License, so
358that they refer to the ordinary GNU General Public License, version 2,
457e6c54 359instead of to this License. (If a newer version than version 2 of the
ccaaf5b0 360ordinary GNU General Public License has appeared, then you can specify
457e6c54 361that version instead if you wish.) Do not make any other change in
ccaaf5b0
RR
362these notices.
363
457e6c54 364Once this change is made in a given copy, it is irreversible for
ccaaf5b0
RR
365that copy, so the ordinary GNU General Public License applies to all
366subsequent copies and derivative works made from that copy.
367
457e6c54 368This option is useful when you wish to copy part of the code of
ccaaf5b0
RR
369the Library into a program that is not a library.
370
457e6c54 3714. You may copy and distribute the Library (or a portion or
ccaaf5b0
RR
372derivative of it, under Section 2) in object code or executable form
373under the terms of Sections 1 and 2 above provided that you accompany
374it with the complete corresponding machine-readable source code, which
375must be distributed under the terms of Sections 1 and 2 above on a
376medium customarily used for software interchange.
377
457e6c54 378If distribution of object code is made by offering access to copy
ccaaf5b0
RR
379from a designated place, then offering equivalent access to copy the
380source code from the same place satisfies the requirement to
381distribute the source code, even though third parties are not
382compelled to copy the source along with the object code.
383
457e6c54 3845. A program that contains no derivative of any portion of the
ccaaf5b0 385Library, but is designed to work with the Library by being compiled or
457e6c54 386linked with it, is called a "work that uses the Library". Such a
ccaaf5b0
RR
387work, in isolation, is not a derivative work of the Library, and
388therefore falls outside the scope of this License.
389
457e6c54 390However, linking a "work that uses the Library" with the Library
ccaaf5b0
RR
391creates an executable that is a derivative of the Library (because it
392contains portions of the Library), rather than a "work that uses the
457e6c54 393library". The executable is therefore covered by this License.
ccaaf5b0
RR
394Section 6 states terms for distribution of such executables.
395
457e6c54 396When a "work that uses the Library" uses material from a header file
ccaaf5b0
RR
397that is part of the Library, the object code for the work may be a
398derivative work of the Library even though the source code is not.
399Whether this is true is especially significant if the work can be
457e6c54 400linked without the Library, or if the work is itself a library. The
ccaaf5b0
RR
401threshold for this to be true is not precisely defined by law.
402
457e6c54 403If such an object file uses only numerical parameters, data
ccaaf5b0
RR
404structure layouts and accessors, and small macros and small inline
405functions (ten lines or less in length), then the use of the object
406file is unrestricted, regardless of whether it is legally a derivative
457e6c54 407work. (Executables containing this object code plus portions of the
ccaaf5b0
RR
408Library will still fall under Section 6.)
409
457e6c54 410Otherwise, if the work is a derivative of the Library, you may
ccaaf5b0
RR
411distribute the object code for the work under the terms of Section 6.
412Any executables containing that work also fall under Section 6,
413whether or not they are linked directly with the Library itself.
414
457e6c54 4156. As an exception to the Sections above, you may also compile or
ccaaf5b0
RR
416link a "work that uses the Library" with the Library to produce a
417work containing portions of the Library, and distribute that work
418under terms of your choice, provided that the terms permit
419modification of the work for the customer's own use and reverse
420engineering for debugging such modifications.
421
457e6c54 422You must give prominent notice with each copy of the work that the
ccaaf5b0 423Library is used in it and that the Library and its use are covered by
457e6c54 424this License. You must supply a copy of this License. If the work
ccaaf5b0
RR
425during execution displays copyright notices, you must include the
426copyright notice for the Library among them, as well as a reference
457e6c54 427directing the user to the copy of this License. Also, you must do one
ccaaf5b0
RR
428of these things:
429
605d715d 430\begin{indented}{1cm}
457e6c54
JS
431a) Accompany the work with the complete corresponding
432machine-readable source code for the Library including whatever
433changes were used in the work (which must be distributed under
434Sections 1 and 2 above); and, if the work is an executable linked
435with the Library, with the complete machine-readable "work that
436uses the Library", as object code and/or source code, so that the
437user can modify the Library and then relink to produce a modified
438executable containing the modified Library. (It is understood
439that the user who changes the contents of definitions files in the
440Library will not necessarily be able to recompile the application
441to use the modified definitions.)
442
443b) Accompany the work with a written offer, valid for at
444least three years, to give the same user the materials
445specified in Subsection 6a, above, for a charge no more
446than the cost of performing this distribution.
447
448c) If distribution of the work is made by offering access to copy
449from a designated place, offer equivalent access to copy the above
450specified materials from the same place.
451
452d) Verify that the user has already received a copy of these
453materials or that you have already sent this user a copy.
605d715d 454\end{indented}
ccaaf5b0 455
457e6c54 456For an executable, the required form of the "work that uses the
ccaaf5b0 457Library" must include any data and utility programs needed for
457e6c54 458reproducing the executable from it. However, as a special exception,
ccaaf5b0
RR
459the source code distributed need not include anything that is normally
460distributed (in either source or binary form) with the major
461components (compiler, kernel, and so on) of the operating system on
462which the executable runs, unless that component itself accompanies
463the executable.
464
457e6c54 465It may happen that this requirement contradicts the license
ccaaf5b0 466restrictions of other proprietary libraries that do not normally
457e6c54 467accompany the operating system. Such a contradiction means you cannot
ccaaf5b0
RR
468use both them and the Library together in an executable that you
469distribute.
470
457e6c54 4717. You may place library facilities that are a work based on the
ccaaf5b0
RR
472Library side-by-side in a single library together with other library
473facilities not covered by this License, and distribute such a combined
474library, provided that the separate distribution of the work based on
475the Library and of the other library facilities is otherwise
476permitted, and provided that you do these two things:
477
605d715d 478\begin{indented}{1cm}
457e6c54
JS
479a) Accompany the combined library with a copy of the same work
480based on the Library, uncombined with any other library
481facilities. This must be distributed under the terms of the
482Sections above.
483
484b) Give prominent notice with the combined library of the fact
485that part of it is a work based on the Library, and explaining
486where to find the accompanying uncombined form of the same work.
605d715d 487\end{indented}
ccaaf5b0 488
457e6c54
JS
4898. You may not copy, modify, sublicense, link with, or distribute
490the Library except as expressly provided under this License. Any
ccaaf5b0
RR
491attempt otherwise to copy, modify, sublicense, link with, or
492distribute the Library is void, and will automatically terminate your
457e6c54 493rights under this License. However, parties who have received copies,
ccaaf5b0
RR
494or rights, from you under this License will not have their licenses
495terminated so long as such parties remain in full compliance.
496
457e6c54
JS
4979. You are not required to accept this License, since you have not
498signed it. However, nothing else grants you permission to modify or
499distribute the Library or its derivative works. These actions are
500prohibited by law if you do not accept this License. Therefore, by
ccaaf5b0
RR
501modifying or distributing the Library (or any work based on the
502Library), you indicate your acceptance of this License to do so, and
503all its terms and conditions for copying, distributing or modifying
504the Library or works based on it.
505
457e6c54 50610. Each time you redistribute the Library (or any work based on the
ccaaf5b0
RR
507Library), the recipient automatically receives a license from the
508original licensor to copy, distribute, link with or modify the Library
457e6c54 509subject to these terms and conditions. You may not impose any further
ccaaf5b0
RR
510restrictions on the recipients' exercise of the rights granted herein.
511You are not responsible for enforcing compliance by third parties to
512this License.
513
457e6c54 51411. If, as a consequence of a court judgment or allegation of patent
ccaaf5b0
RR
515infringement or for any other reason (not limited to patent issues),
516conditions are imposed on you (whether by court order, agreement or
517otherwise) that contradict the conditions of this License, they do not
457e6c54 518excuse you from the conditions of this License. If you cannot
ccaaf5b0
RR
519distribute so as to satisfy simultaneously your obligations under this
520License and any other pertinent obligations, then as a consequence you
457e6c54 521may not distribute the Library at all. For example, if a patent
ccaaf5b0
RR
522license would not permit royalty-free redistribution of the Library by
523all those who receive copies directly or indirectly through you, then
524the only way you could satisfy both it and this License would be to
525refrain entirely from distribution of the Library.
526
527If any portion of this section is held invalid or unenforceable under any
528particular circumstance, the balance of the section is intended to apply,
529and the section as a whole is intended to apply in other circumstances.
530
531It is not the purpose of this section to induce you to infringe any
532patents or other property right claims or to contest validity of any
533such claims; this section has the sole purpose of protecting the
534integrity of the free software distribution system which is
457e6c54 535implemented by public license practices. Many people have made
ccaaf5b0
RR
536generous contributions to the wide range of software distributed
537through that system in reliance on consistent application of that
538system; it is up to the author/donor to decide if he or she is willing
539to distribute software through any other system and a licensee cannot
540impose that choice.
541
542This section is intended to make thoroughly clear what is believed to
543be a consequence of the rest of this License.
544
457e6c54 54512. If the distribution and/or use of the Library is restricted in
ccaaf5b0
RR
546certain countries either by patents or by copyrighted interfaces, the
547original copyright holder who places the Library under this License may add
548an explicit geographical distribution limitation excluding those countries,
549so that distribution is permitted only in or among countries not thus
457e6c54 550excluded. In such case, this License incorporates the limitation as if
ccaaf5b0
RR
551written in the body of this License.
552
457e6c54 55313. The Free Software Foundation may publish revised and/or new
ccaaf5b0
RR
554versions of the Library General Public License from time to time.
555Such new versions will be similar in spirit to the present version,
556but may differ in detail to address new problems or concerns.
557
457e6c54 558Each version is given a distinguishing version number. If the Library
ccaaf5b0
RR
559specifies a version number of this License which applies to it and
560"any later version", you have the option of following the terms and
561conditions either of that version or of any later version published by
457e6c54 562the Free Software Foundation. If the Library does not specify a
ccaaf5b0
RR
563license version number, you may choose any version ever published by
564the Free Software Foundation.
565
457e6c54 56614. If you wish to incorporate parts of the Library into other free
ccaaf5b0 567programs whose distribution conditions are incompatible with these,
457e6c54 568write to the author to ask for permission. For software which is
ccaaf5b0 569copyrighted by the Free Software Foundation, write to the Free
457e6c54 570Software Foundation; we sometimes make exceptions for this. Our
ccaaf5b0
RR
571decision will be guided by the two goals of preserving the free status
572of all derivatives of our free software and of promoting the sharing
573and reuse of software generally.
574
605d715d 575\begin{center}
457e6c54 576NO WARRANTY
605d715d 577\end{center}
ccaaf5b0 578
457e6c54 57915. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
ccaaf5b0
RR
580WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
581EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
582OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
583KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
584IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
457e6c54
JS
585PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
586LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
ccaaf5b0
RR
587THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
588
457e6c54 58916. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
ccaaf5b0
RR
590WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
591AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
592FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
593CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
594LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
595RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
596FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
597SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
598DAMAGES.
599
605d715d
VS
600
601\begin{center}
457e6c54 602END OF TERMS AND CONDITIONS
605d715d 603\end{center}
ccaaf5b0 604
605d715d 605\wxheading{Appendix: How to Apply These Terms to Your New Libraries}
ccaaf5b0 606
457e6c54 607If you develop a new library, and you want it to be of the greatest
ccaaf5b0 608possible use to the public, we recommend making it free software that
457e6c54 609everyone can redistribute and change. You can do so by permitting
ccaaf5b0
RR
610redistribution under these terms (or, alternatively, under the terms of the
611ordinary General Public License).
612
457e6c54 613To apply these terms, attach the following notices to the library. It is
ccaaf5b0
RR
614safest to attach them to the start of each source file to most effectively
615convey the exclusion of warranty; and each file should have at least the
616"copyright" line and a pointer to where the full notice is found.
617
605d715d
VS
618\footnotesize{
619\begin{verbatim}
620<one line to give the library's name and a brief idea of what it does.>
457e6c54 621Copyright (C) <year> <name of author>
605d715d
VS
622
623This library is free software; you can redistribute it and/or
624modify it under the terms of the GNU Library General Public
625License as published by the Free Software Foundation; either
626version 2 of the License, or (at your option) any later version.
627
628This library is distributed in the hope that it will be useful,
629but WITHOUT ANY WARRANTY; without even the implied warranty of
457e6c54 630MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
605d715d
VS
631Library General Public License for more details.
632
633You should have received a copy of the GNU Library General Public
634License along with this library; if not, write to the Free
635Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
636\end{verbatim}
d2c2afc9 637}%
ccaaf5b0 638
ccaaf5b0
RR
639Also add information on how to contact you by electronic and paper mail.
640
641You should also get your employer (if you work as a programmer) or your
642school, if any, to sign a "copyright disclaimer" for the library, if
457e6c54 643necessary. Here is a sample; alter the names:
ccaaf5b0 644
605d715d
VS
645\footnotesize{
646\begin{verbatim}
647Yoyodyne, Inc., hereby disclaims all copyright interest in the
648library `Frob' (a library for tweaking knobs) written by James Random Hacker.
649
650<signature of Ty Coon>, 1 April 1990
651Ty Coon, President of Vice
652\end{verbatim}
d2c2afc9 653}%
ccaaf5b0 654
ccaaf5b0
RR
655That's all there is to it!
656
ab246904 657\input body.tex
8a7fd2e3 658\input libs.tex
ab246904 659\input classes.tex
9cc02d04 660\input function.tex
ab246904
VZ
661\input constant.tex
662\input category.tex
663\input topics.tex
664\input portnote.tex
bd330a69 665% Deprecated classes
ab246904 666%\input proplist.tex
a660d684 667
bd0df01f 668\begin{comment}
a660d684
KB
669\newpage
670
671% Puts books in the bibliography without needing to cite them in the
672% text
673\nocite{helpbook}%
674\nocite{wong93}%
675\nocite{pree94}%
676\nocite{gamma95}%
677\nocite{smart95a}%
678\nocite{smart95b}%
679
680\bibliography{refs}
681\addcontentsline{toc}{chapter}{Bibliography}
682\setheader{{\it REFERENCES}}{}{}{}{}{{\it REFERENCES}}%
683\setfooter{\thepage}{}{}{}{}{\thepage}%
d958c9bd 684\end{comment}
a660d684
KB
685
686\newpage
d958c9bd 687
62448488
JS
688% Note: In RTF, the \printindex must come before the
689% change of header/footer, since the \printindex inserts
690% the RTF \sect command which divides one chapter from
691% the next.
692\rtfonly{\printindex
a660d684
KB
693\addcontentsline{toc}{chapter}{Index}
694\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
62448488
JS
695\setfooter{\thepage}{}{}{}{}{\thepage}
696}
697% In Latex, it must be this way around (I think)
698\latexonly{\addcontentsline{toc}{chapter}{Index}
699\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
700\setfooter{\thepage}{}{}{}{}{\thepage}
a660d684 701\printindex
62448488
JS
702}
703
a660d684 704\end{document}