commit 0b6c3aee88d634ecc97f598a309ca7d9e580da5e
Author: Maxim Lihachev
Date: Mon Mar 10 12:03:29 2014 +0600
Create GIT repository
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..89a8fee
--- /dev/null
+++ b/README.md
@@ -0,0 +1,45 @@
+**tMKB10** - справочник Международной классификации болезней десятого пересмотра с текстовым и графическим пользовательскими интерфейсами
+
+##Лицензия
+ Copyright (C) 2011-2014, Maxim Lihachev,
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+##Описание
+ Международная статистическая классификация болезней и проблем, связанных со
+ здоровьем — документ, используемый как ведущая статистическая и
+ классификационная основа в здравоохранении. МКБ является нормативным документом,
+ обеспечивающим единство методических подходов и международную сопоставимость
+ материалов. В настоящее время действует Международная классификация болезней
+ Десятого пересмотра (МКБ-10, ICD-10).
+
+##Использование
+ cli: tMKB10.tcl [код МКБ]
+ gui: tMKB10.tcl
+
+##Версия
+ 0.1
+
+##Текстовый интерфейс
+![][screenshot1]
+[screenshot1]: tMKB10.gif
+
+##Графический интерфейс
+![][screenshot2]
+[screenshot2]: tMKB10.gif
+
+##Структура программы
+![][structure]
+[structure]: tMKB10.gif
+
diff --git a/example.filter b/example.filter
new file mode 100644
index 0000000..88c0555
--- /dev/null
+++ b/example.filter
@@ -0,0 +1,2 @@
+filter magenta {Заболевания органов дыхания} J00-J99
+filter green {Сахарный диабет} E10
diff --git a/lib/bwidget/BWman/ArrowButton.html b/lib/bwidget/BWman/ArrowButton.html
new file mode 100644
index 0000000..3969d3d
--- /dev/null
+++ b/lib/bwidget/BWman/ArrowButton.html
@@ -0,0 +1,276 @@
+
+ArrowButton
+
+- NAME
+- ArrowButton
+ - Button widget with an arrow shape.
+
+
+- CREATION
+- ArrowButton pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName invoke
+
+
+
+DESCRIPTION
+
+
+ArrowButton can be of two types following type option:
+for button type, it is standard button with an arrow drawn on it;
+for arrow type, it is an arrow like scrollbar's arrow.
+
+
+WIDGET-SPECIFIC OPTIONS
+- -armcommand
+-
+
+Specifies a Tcl command to associate with the ArrowButton when mouse button 1 is pressed
+over the ArrowButton. When repeatdelay or repeatinterval option is positive
+integer, this command is repeatedly called if mouse pointer is over the button and until
+mouse button 1 is released.
+
+
+- -arrowbd
+-
+
+When ArrowButton type is arrow, specifies the border width of the
+arrow. Must be 1 or 2.
+
+
+
+- -arrowrelief
+-
+
+When ArrowButton type is arrow, specifies the relief of the arrow.
+Must be raised or sunken.
+
+
+
+- -clean
+-
+
+Specifies a level of quality, between 0 and 2, for the arrow.
+If 0, the arrow is drawn with its maximum width and height.
+If 1, the base of arrow is arranged to be odd to have same edges.
+If 2, the base of arrow is arranged to be odd and the orthogonal to be (base+1)/2 to
+have 'straight' diagonal for edges.
+
+
+- -command
+-
+
+Specifies a Tcl command to associate with the ArrowButton. This command
+is typically invoked when mouse button 1 is released over the ArrowButton
+window.
+
+
+- -dir
+-
+
+Specifies the direction of the arrow: top, bottom, left
+or right.
+
+
+- -disarmcommand
+-
+
+Specifies a Tcl command to associate with the ArrowButton when mouse button 1 is released.
+This command is called even if pointer is not over the ArrowButton, and always before
+the command specified by command option.
+It is typically used in conjuntion with armcommand, repeatdelay and
+repeatinterval.
+
+
+- -height
+-
+
+Specifies a desired height for the ArrowButton. The value is in screen units.
+
+
+- -helptext
+-
+
+Text for dynamic help. If empty, no help is available for this widget.
+See also DynamicHelp.
+
+
+- -helptype
+-
+Type of dynamic help. Use balloon or variable.
+See also DynamicHelp.
+
+
+- -helpvar
+-
+Variable to use when helptype option is variable.
+See also DynamicHelp.
+
+
+- -ipadx
+-
+
+Specifies a minimun pad between the ArrowButton border and the right and left side
+of the arrow. The value is in screen units.
+
+
+- -ipady
+-
+
+Specifies a minimun pad between the ArrowButton border and the top and bottom side
+of the arrow. The value is in screen units.
+
+
+- -state
+-
+
+Specifies one of three states for the ArrowButton: normal, active,
+or disabled.
+
- If ArrowButton type is button:
+- In normal state the ArrowButton is displayed using the
+foreground and background options. The active state is
+typically used when the pointer is over the ArrowButton. In active state
+the ArrowButton is displayed using the activeforeground and
+activebackground options. In disabled state the disabledforeground and
+background options determine how the ArrowButton is displayed.
+
+- If ArrowButton type is arrow:
+- Only colors of arrow change. The background of ArrowButton is always
+displayed using troughcolor option.
+In normal state the ArrowButton is displayed using the background option. The active
+state is typically used when the pointer is over the ArrowButton. In active state
+the ArrowButton is displayed using the activebackground option. In disabled state
+the ArrowButton is displayed with a dark stipple.
+
+
+Disabled state means that the ArrowButton
+should be insensitive: the default bindings will refuse to activate
+the widget and will ignore mouse button presses.
+
+
+- -type
+-
+
+Determines the type of the ArrowButton: button for standard button look, or
+arrow scrollbar's arrow look.
+
+
+- -width
+-
+
+Specifies a desired width for the ArrowButton. The value is in screen units.
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName invoke
+
-
+
+If ArrowButton state is not disabled, this invoke the commands of the button.
+ArrowButton is redisplayed with active color and sunken relief, and
+armcommand is called. Then ArrowButton is redisplayed with
+normal color and its defined relief, and disarmcommand then command
+are called.
+
invoke is called when ArrowButton has input focus and user press the space bar.
+
+
diff --git a/lib/bwidget/BWman/BWidget.html b/lib/bwidget/BWman/BWidget.html
new file mode 100644
index 0000000..35afba4
--- /dev/null
+++ b/lib/bwidget/BWman/BWidget.html
@@ -0,0 +1,228 @@
+
+BWidget
+
+
Under construction ...
+- NAME
+- BWidget
+ - Description text
+
+
+- COMMAND
+- BWidget::XLFDfont
+ cmd
+ ?arg...?
+
+- BWidget::assert
+ exp
+ ?msg?
+
+- BWidget::badOptionString
+ type
+ value
+ list
+
+- BWidget::bindMouseWheel
+ widget
+
+- BWidget::classes
+ class
+
+- BWidget::clonename
+ menu
+
+- BWidget::focus
+ option
+ path
+
+- BWidget::get3dcolor
+ path
+ bgcolor
+
+- BWidget::getname
+ name
+
+- BWidget::grab
+ option
+ path
+
+- BWidget::inuse
+ class
+
+- BWidget::library
+ class ?class ...?
+
+- BWidget::lreorder
+ list
+ neworder
+
+- BWidget::parsetext
+ text
+
+- BWidget::place
+ path
+ w
+ h
+ ?arg...?
+
+- BWidget::write
+ filename ?mode?
+
+- BWidget::wrongNumArgsString
+ string
+
+
+
+DESCRIPTION
+
+Description text
+
+
+COMMAND
+- BWidget::XLFDfont
+ cmd
+ ?arg...?
+
-
+Description text
+
+- BWidget::assert
+ exp
+ ?msg?
+
-
+Description text
+
+- BWidget::badOptionString
+ type
+ value
+ list
+
-
+Return a proper error string for a value of type that doesn't
+match list.
+
+
+- BWidget::bindMouseWheel
+ widget
+
-
+ Bind the given widget with the standard mouse wheel bindings.
+
+
+- BWidget::classes
+ class
+
-
+ Returns a list of classes needed by the given class.
+
+
+- BWidget::clonename
+ menu
+
-
+Description text
+
+- BWidget::focus
+ option
+ path
+
-
+Description text
+
+- BWidget::get3dcolor
+ path
+ bgcolor
+
-
+Description text
+
+- BWidget::getname
+ name
+
-
+Description text
+
+- BWidget::grab
+ option
+ path
+
-
+Description text
+
+
+- BWidget::inuse
+ class
+
-
+ Returns true or false if the given class is being used by the
+ current running program.
+
+
+- BWidget::library
+ class
+ ?class ...?
+
-
+ Returns a string of code that contains all the libraries needed to
+ use the widgets given by class. Each class's code and the
+ code of its dependent classes is appended to the string and returned.
+ This is mostly useful for saving BWidgets to another project.
+
+
+- BWidget::lreorder
+ list
+ neworder
+
-
+Description text
+
+- BWidget::parsetext
+ text
+
-
+Description text
+
+- BWidget::place
+ path
+ w
+ h
+ ?arg...?
+
-
+Used to position and resize the widget specified by
+path. w and h are used to specify the requested
+width and height of the path widget for use by wm
+geometry (set to 0 to use current values). The placement of the widget relative to other widgets or
+the screen is controlled by additional arguments:
+
+ - at x y
+ - Place the widget specified by the path argument at screen
+ position x,y. See wm geometry for information about window
+ placement values.
+
+ - center ?widget?
+ - Place the path widget centered against widget or against the
+ root widget if widget is not given.
+
+ - left ?widget?
+ - right ?widget?
+ - Place the path widget either left or right of the
+ reference widget (or the root widget if widget is not
+ specified). If the reference widget's position is such that the newly
+ placed window might be obscured then the opposite side will be tried.
+
+ - above ?widget?
+ - below ?widget?
+ - As for left/right above, this option causes the widget to be
+ placed either above or below the reference widget with the opposite
+ placement being attempted if the newly placed widget will not be visible.
+
+
+
+- BWidget::write
+ filename
+ ?mode?
+
-
+ Writes the currently used set of BWidget class code to the given
+ filename. All the code necessary to run the BWidgets
+ currently in use is written to the file. This is mostly useful
+ for saving BWidget code to another project as a single file instead
+ of the entire BWidget package.
+
+
+
+- BWidget::wrongNumArgsString
+ string
+
+-
+ Returns a standard error string for the wrong number of arguments.
+ string is appended to the standard string.
+
+
+
+
diff --git a/lib/bwidget/BWman/Button.html b/lib/bwidget/BWman/Button.html
new file mode 100644
index 0000000..f1b5aae
--- /dev/null
+++ b/lib/bwidget/BWman/Button.html
@@ -0,0 +1,307 @@
+
+Button
+
+- NAME
+- Button
+ - Button widget with enhanced options
+
+
+- CREATION
+- Button pathName ?option value...?
+
+
+- STANDARD OPTIONS
+- Not themed
+
+- Themed
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName invoke
+
+
+
+DESCRIPTION
+
+
+Button widget extends the Tk button with new options.
+DynamicHelp options,
+a new relief style, callback for arm/disarm, and
+repeatdelay/repeatinterval options has been added.
+
+
+WIDGET-SPECIFIC OPTIONS
+- -armcommand
+-
+
+Specifies a Tcl command to associate with the Button when mouse button 1 is pressed over the
+Button. When repeatdelay or repeatinterval option is positive integer,
+this command is repeatedly called if mouse pointer is over the Button and until mouse
+button 1 is released.
+
+
+- -command
+-
+
+Specifies a Tcl command to associate with the Button. This command
+is typically invoked when mouse button 1 is released over the Button
+window.
+
+
+- -default
+-
+
+Specifies one of three states for the default ring: normal, active,
+or disabled. In active state, the button is drawn with the platform specific
+appearance for a default button. In normal state, the button is drawn with the platform
+specific appearance for a non-default button, leaving enough space to draw the default
+button appearance. The normal and active states will result in buttons of the same size.
+In disabled state, the button is drawn with the non-default button appearance without
+leaving space for the default appearance. The disabled state may result
+in a smaller button than the active state.
+
+
+- -disarmcommand
+-
+
+Specifies a Tcl command to associate with the Button when mouse button 1 is released.
+This command is called even if pointer is not over the Button, and always before
+the command specified by command option.
+It is typically used in conjuntion with armcommand, repeatdelay and
+repeatinterval.
+
+
+- -height
+-
+
+Specifies a desired height for the Button.
+If an image or bitmap is being displayed in the Button then the value is in
+screen units;
+for text it is in lines of text.
+If this option isn't specified, the Button's desired height is computed
+from the size of the image or bitmap or text being displayed in it.
+Option not available when widget is themed.
+
+
+- -helptext
+-
+
+Text for dynamic help. If empty, no help is available for this widget.
+See also DynamicHelp.
+
+
+- -helptype
+-
+Type of dynamic help. Use balloon or variable.
+See also DynamicHelp.
+
+
+- -helpvar
+-
+Variable to use when helptype option is variable.
+See also DynamicHelp.
+
+
+- -name
+-
+
+Specifies a standard name for the button. If the option *nameName is
+found in the resources database, then text and underline options
+are extracted from its value.
+
+
+
+- -relief
+-
+
+Specifies the 3-D effect desired for the widget. Acceptable values are standard values for
+button relief (raised, sunken, flat, ridge, solid, and groove) and link, which specifies that button relief is flat when pointer
+is outside the button and raised when pointer is inside.
+This option has only the following effect if the widget is themed:
+The value link used a style Toolbutton while any other value uses the standard effect.
+
+
+- -state
+-
+
+Specifies one of three states for the Button: normal, active,
+or disabled. In normal state the Button is displayed using the
+foreground and background options. The active state is
+typically used when the pointer is over the Button. In active state
+the Button is displayed using the activeforeground and
+activebackground options. Disabled state means that the Button
+should be insensitive: the default bindings will refuse to activate
+the widget and will ignore mouse button presses.
+In this state the disabledforeground and
+background options determine how the Button is displayed.
+
+
+- -underline
+-
+
+Specifies the integer index of a character to underline in the label of the button.
+0 corresponds to the first character of the text displayed, 1 to the next character,
+and so on.
+
The binding <Alt-char> is automatically set on the toplevel
+of the Button to call Button::setfocus.
+
+
+
+- -width
+-
+
+If an image or bitmap is being displayed in the Button then the value is in
+screen units;
+for text it is in characters.
+If this option isn't specified, the Button's desired width is computed
+from the size of the image or bitmap or text being displayed in it.
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName invoke
+
-
+
+If Button state is not disabled, this invoke the commands of the Button.
+Button is redisplayed with active color and sunken relief, and
+armcommand is called. Then Button is redisplayed with
+normal color and its defined relief, and disarmcommand then command
+are called.
+
invoke is called when Button has input focus and user press the space bar.
+
+
+
+BINDINGS
+- <<Invoke>>
+
-
+
+Invoke the invoke widget command.
+
+
+
diff --git a/lib/bwidget/BWman/ButtonBox.html b/lib/bwidget/BWman/ButtonBox.html
new file mode 100644
index 0000000..f65f20f
--- /dev/null
+++ b/lib/bwidget/BWman/ButtonBox.html
@@ -0,0 +1,266 @@
+
+ButtonBox
+
+- NAME
+- ButtonBox
+ - Set of buttons with horizontal or vertical layout
+
+
+- CREATION
+- ButtonBox pathName ?option value...?
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName add
+ ?option value...?
+
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName delete
+ index
+
+- pathName index
+ index
+
+- pathName insert
+ index ?option value...?
+
+- pathName invoke
+ index
+
+- pathName itemcget
+ index
+ option
+
+- pathName itemconfigure
+ index
+ ?option? ?value option value ...?
+
+- pathName setfocus
+ index
+
+
+
+DESCRIPTION
+
+
+ButtonBox layouts Button horizontally or vertically.
+Some commands take an index as argument indicating on which
+Button it work. This index may be specified in any of the following forms:
+
+
+-
+number
+
-
+Specifies the Button numerically, where 0 corresponds
+to the first added Button, 1 to the next, and so on.
+
-
+end or last
+
-
+Indicates the last item added.
+
- default
+
-
+Indicates the default Button.
+
+
-
+name
+
-
+Indicates the button whose -name option is name.
+
+
-
+text
+
-
+Indicates the button whose -text option is text.
+
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -background
+-
+
+Specifies a default background color for all added buttons and for the frame.
+For themed wigets, the button color is not set.
+
+
+
+- -default
+-
+
+Specifies the default button of the button box. The value is an integer
+referencing the n-th added button, starting from 0.
+If this value is -1 (the default), all button wil be drawn with their -default
+option set to disabled, and this value can not be changed.
If this value is
+not -1, the associated button is drawn with -default option set to active and
+the others are drawn with -default option set to normal. The value can be changed
+by configure.
+
+
+
+- -homogeneous (read-only)
+-
+
+Specifies wether or not buttons must have the same width for horizontal layout.
+
+
+
+- -orient (read-only)
+-
+
+Specifies the orientation of the button box. If this option is horizontal
+(the default), buttons are added from top to bottom.
+If this option is vertical, buttons are added from left to right.
+
+
+
+- -padx
+-
+
+Specifies a default value for the -padx option of all added buttons.
+Option has no effect for themed wigets.
+
+
+- -pady
+-
+
+Specifies a default value for the -pady option of all added buttons.
+Option has no effect for themed wigets.
+
+
+
+- -spacing
+-
+
+Specifies the default spacing between buttons. This value can be changed before each
+call to add.
+
+
+
+
+- -state
+-
+
+Specifies a state for all the buttons in the button box. Can be any state supported by buttons.
+
+
+
+
+
+WIDGET COMMAND
+- pathName add
+ ?option value...?
+
-
+
+Add a button to the button box.
+
+See Button for description of options.
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+
+- pathName delete
+ index
+
-
+
+Delete the button at index from the button box.
+
+
+
+- pathName index
+ index
+
-
+
+Return the numerical index corresponding to the item.
+
+
+
+- pathName insert
+ index ?option value...?
+
-
+
+Insert a new button into the button box before the given index.
+
+
+
+- pathName invoke
+ index
+
-
+
+Invoke the Button given by index.
+
+
+- pathName itemcget
+ index
+ option
+
-
+
+Returns the current value of a configuration option for the item.
+Option may have any of the values accepted by the item creation command.
+
+
+- pathName itemconfigure
+ index
+ ?option? ?value option value ...?
+
-
+
+This command is similar to the configure command, except that it applies to the
+options for an individual item, whereas configure applies to the options for
+the widget as a whole. Options may have any of the values accepted by the
+item creation widget command. If options are specified, options are modified as indicated
+in the command and the command returns an empty string. If no options are specified,
+returns a list describing the current options for the item.
+Read-only options are not be modified.
+
+
+- pathName setfocus
+ index
+
-
+
+Set the focus to the Button given by index.
+
+
+
diff --git a/lib/bwidget/BWman/ComboBox.html b/lib/bwidget/BWman/ComboBox.html
new file mode 100644
index 0000000..c7ed3cf
--- /dev/null
+++ b/lib/bwidget/BWman/ComboBox.html
@@ -0,0 +1,402 @@
+
+ComboBox
+
+- NAME
+- ComboBox
+ - ComboBox widget
+
+
+- CREATION
+- ComboBox pathName ?option value...?
+
+
+- OPTIONS from ArrowButton
+
+
+ -background or -bg |
+ -disabledforeground |
+
+
+ -foreground or -fg |
+ -state |
+
+
+
+
+- OPTIONS from Entry
+
+
+ -command |
+ -disabledforeground |
+
+
+ -dragenabled |
+ -dragendcmd |
+
+
+ -dragevent |
+ -draginitcmd |
+
+
+ -dragtype |
+ -dropcmd |
+
+
+ -dropenabled |
+ -dropovercmd |
+
+
+ -droptypes |
+ -editable |
+
+
+ -entrybg (see -background) |
+ -entryfg (see -foreground) |
+
+
+ -exportselection |
+ -font |
+
+
+ -helptext |
+ -helptype |
+
+
+ -helpvar |
+ -highlightbackground |
+
+
+ -highlightcolor |
+ -highlightthickness |
+
+
+ -insertbackground |
+ -insertborderwidth |
+
+
+ -insertofftime |
+ -insertontime |
+
+
+ -insertwidth |
+ -justify |
+
+
+ -selectbackground |
+ -selectborderwidth |
+
+
+ -selectforeground |
+ -show |
+
+
+ -state |
+ -takefocus |
+
+
+ -text |
+ -textvariable |
+
+
+ -width |
+ -xscrollcommand |
+
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName bind
+ ?arg...?
+
+- pathName cget
+ option
+
+- pathName clearvalue
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName get
+- pathName getlistbox
+- pathName getvalue
+- pathName icursor
+index
+
+- pathName post
+- pathName setvalue
+ index
+
+- pathName unpost
+
+
+DESCRIPTION
+
+
+ComboBox widget enables the user to select a value among a list given by
+the values option. The list of possible values can be popped by
+pressing the ArrowButton or by clicking in the entry when editable
+value of the ComboBox is false.
If editable value of the
+ComboBox is true and the entry has the focus, the user can press the
+top and bottom arrow keys to modify its value. If the current value exactly
+match a value in the list, then the previous (for top arrow key) or then
+next (for bottom arrow key) value in the list is displayed. If the current
+value match the beginning of a value in the list, then this value is
+displayed. If the current value doesnt match anything, then the first
+value is displayed.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+
+ - -autocomplete
+ -
+ Specifies whether or not the combobox should attempt to auto-complete
+ the value in the entry field as the user types. If true, the combobox
+ will fill in a value that it finds in its value list as the user types
+ into the entry.
+
+
+
+
+ - -autopost
+ -
+ Specifies whether or not the combobox should post the drop down as
+ the user types. If true, the combobox will post and scroll to the
+ entry that most closely matches the user entry.
+
+
+
+
+ - -bwlistbox
+ -
+ Specifies that the combobox should use a BWidget listbox in its drop
+ down instead of the standard Tk option. This option is enabled by
+ default if the -images option is not empty.
+
+
+
+- -expand
+-
+
+Specifies the value expansion behavior for the window. It must be
+none (default) or tab. If tab is specified, then
+a Tab binding is added to attempt to expand the current value based on
+the other values in -values.
+
+
+
+- -height
+-
+
+Specifies the desired height for the window, in lines. If zero or less,
+then the desired height for the window is made just large enough to hold
+all the elements in the listbox.
+
+
+
+ - -hottrack
+ -
+ The selection in the drop down listbox will follow the mouse cursor
+ as it moves.
+
+
+
+
+ - -images
+ -
+ A list of images that correspond to the -values option. Each
+ image will be drawn next to its value in the drop down. This option
+ enables the -bwlistbox by default as it is needed to display
+ images.
+
+
+
+
+ - -listboxwidth
+ -
+ Specifies the width of the listbox in the drop down. Defaults to the
+ same size as the combobox.
+
+
+
+
+- -modifycmd
+-
+
+Specifies a Tcl command called when the user modify the value of the ComboBox by selecting it in the listbox or pressing arrow key.
+
+
+- -postcommand
+-
+
+Specifies a Tcl command called before the listbox of the ComboBox is mapped.
+
+
+- -values
+-
+
+Specifies the values to display in the listbox of the ComboBox.
+
+
+
+WIDGET COMMAND
+- pathName bind
+ ?arg...?
+
-
+
+Set bindings on the entry widget.
+
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+
+
+- pathName clearvalue
+
-
+
+Clears the current text of the ComboBox.
+
+
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no
+option is specified, returns a list describing all of the available
+options for pathName. If option is specified with no
+value, 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 option is specified). If one or more
+option-value 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. Option may have any of the values accepted
+by the creation command. Read-only options are not be modified.
+
+
+
+- pathName get
+
-
+
+Returns the current contents of the entry.
+
+
+
+- pathName getlistbox
+
-
+
+Returns the path to the listbox in the drop down.
+
+
+
+- pathName getvalue
+
-
+
+Returns the index of the current text of the ComboBox in the list of values,
+or -1 if it doesn't match any value.
+
+
+
+- pathName icursor
+ index
+
-
+
+Arrange for the insertion cursor to be displayed just before the
+character given by index. Returns an empty string.
+
+
+
+- pathName post
+
-
+
+Post the drop down.
+
+
+
+- pathName setvalue
+ index
+
-
+
+Set the text of the ComboBox to the value indicated by index in the list of values.
+index may be specified in any of the following forms:
+
+
+-
+last
+
-
+Specifies the last element of the list of values.
+
- first
+
-
+Specifies the first element of the list of values.
+
-
+next
+
-
+Specifies the element following the current (ie returned by getvalue) in the list
+of values.
+
- previous
+
-
+Specifies the element preceding the current (ie returned by getvalue) in the list
+of values.
+
-
+@number
+
-
+Specifies the integer index in the list of values.
+
+
+
+
+- pathName unpost
+
-
+
+Unpost the drop down.
+
+
+
+
BINDINGS
+
+When Entry of the ComboBox has the input focus, it has the following bindings, in addition
+to the default Entry bindings:
+
+- Page up set the value of the ComboBox to the first value.
+
- Page down set the value of the ComboBox to the last value.
+
- Arrow up set the value of the ComboBox to the previous value.
+
- Arrow down set the value of the ComboBox to the next value.
+
- If -autopost is enabled, Escape unposts the listbox.
+
+If the listbox is not mapped and ComboBox is not editable or disabled,
+mouse button 1 on the Entry cause the listbox to popup, as if the user press the ArrowButton.
+
+
diff --git a/lib/bwidget/BWman/Dialog.html b/lib/bwidget/BWman/Dialog.html
new file mode 100644
index 0000000..73abb71
--- /dev/null
+++ b/lib/bwidget/BWman/Dialog.html
@@ -0,0 +1,328 @@
+
+Dialog
+
+- NAME
+- Dialog
+ - Dialog abstraction with custom buttons
+
+
+- CREATION
+- Dialog pathName ?option value...?
+
+
+- OPTIONS from ButtonBox
+
+
+ -background or -bg |
+ -homogeneous |
+
+
+ -padx |
+ -pady |
+
+
+ -spacing |
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName add
+ ?arg...?
+
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName draw
+ ?focus?
+
+- pathName enddialog
+ result
+
+- pathName getframe
+
+- pathName invoke
+ index
+
+- pathName itemcget
+ index
+ option
+
+- pathName itemconfigure
+ index
+ ?option? ?value option value ...?
+
+- pathName setfocus
+ index
+
+- pathName withdraw
+
+
+
+DESCRIPTION
+
+
+Dialog widget enables the user to create a dialog box.
+Some commands take an index as argument indicating on which
+Button it work. This index is the same specified for equivalent ButtonBox command:
+
+
+-
+number
+
-
+Specifies the Button numerically, where 0 corresponds
+to the first added Button, 1 to the next, and so on.
+
-
+end or last
+
-
+Indicates the last item added.
+
- default
+
-
+Indicates the default Button.
+
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -anchor (read-only)
+-
+
+Specifies the anchor point of the ButtonBox.
+Must be one of w, e, n, s or c.
+If side option is set to top or bottom,
+anchor values n, s and c have the same effect.
+If side option is set to left or right,
+anchor values w, e and c have the same effect.
+
+
+
+- -bitmap (read-only)
+-
+
+Specifies a bitmap to display at the left of the user frame.
+image option override bitmap.
+
+
+- -cancel
+-
+
+Specifies the number of the cancel button of the Dialog. When user presses Esc or the windows close button,
+this button is invoked.
+If set to -1, Esc does not invoke anything.
+The window close button destroys the dialog in this case and returns -1.
+
+
+- -default
+-
+
+Specifies the number of the default button of the Dialog.
+When user press Return in the Dialog, this button is invoked.
+
+
+
+- -geometry
+-
+
+Set the geometry used when method draw is called.
+See wm geometry for a parameter description.
+
+
+- -image (read-only)
+-
+
+Specifies an image to display at the left of the user frame.
+image option override bitmap.
+
+
+- -modal
+-
+
+This option must be none, local or global. The value of this option
+specifies the grab mode of the dialog and how works Dialog::draw.
+
+
+
+- -parent
+-
+
+Parent of the Dialog. Dialog is placed relative to its parent. If empty, it is
+placed relative to the root window. Also see place option.
+
+
+
+- -place
+-
+Specifies where to draw the Dialog toplevel relative to the dialog's
+parent. Must be one of none, center, left, right,
+above, below. Default value of place is center.
+
+
+
+- -separator (read-only)
+-
+
+Specifies wether or not to draw a separator between the user frame and the ButtonBox.
+
+
+
+- -side (read-only)
+-
+
+Specifies where to draw the ButtonBox relative to the user frame. Must be one of
+top, left, bottom or right.
+
+
+- -title
+-
+
+Title of the Dialog toplevel.
+
+
+
+- -transient (read-only)
+-
+
+Specifies if the Dialog Toplevel should be a transient window or not. Default
+value of transient is true.
+
+
+
+
+WIDGET COMMAND
+- pathName add
+ ?arg...?
+
-
+
+Add a button to the button box of the dialog box. Default -command option is
+Dialog::enddialog $path index where index is number of button added.
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName draw
+ ?focus?
+
-
+
+This command draw the Dialog, and set grab to it following modal option.
+If modal option is set to none, the command returns immediatly
+an empty string. In all other case, the command returns when Dialog::enddialog
+is called or when Dialog is destroyed.
+The return value is the result argument of Dialog::enddialog or -1 if it is destroyed.
+
+By default, the focus is set to the default button referenced by default option,
+or to the toplevel of Dialog if no default button has been set.
+If focus is present, it must be a pathname, or an index to a button.
+Initial focus is set on this pathname or corresponding button.
+
+
+- pathName enddialog
+ result
+
-
+
+This command is typically called within a command of a button to make Dialog::draw
+return.
+
+
+- pathName getframe
+
-
+
+Returns the pathname of the user window.
+
+- pathName invoke
+ index
+
-
+
+Invoke the Button given by index.
+
+
+- pathName itemcget
+ index
+ option
+
-
+
+Returns the current value of a configuration option for the item.
+Option may have any of the values accepted by the item creation command.
+
+
+- pathName itemconfigure
+ index
+ ?option? ?value option value ...?
+
-
+
+This command is similar to the configure command, except that it applies to the
+options for an individual item, whereas configure applies to the options for
+the widget as a whole. Options may have any of the values accepted by the
+item creation widget command. If options are specified, options are modified as indicated
+in the command and the command returns an empty string. If no options are specified,
+returns a list describing the current options for the item.
+Read-only options are not be modified.
+
+
+- pathName setfocus
+ index
+
-
+
+Set the focus to the Button given by index.
+
+
+- pathName withdraw
+
-
+
+Call this command to hide the dialog box.
+
+
+
diff --git a/lib/bwidget/BWman/DragSite.html b/lib/bwidget/BWman/DragSite.html
new file mode 100644
index 0000000..e60cf10
--- /dev/null
+++ b/lib/bwidget/BWman/DragSite.html
@@ -0,0 +1,141 @@
+
+DragSite
+
+- NAME
+- DragSite
+ - Commands set for Drag facilities
+
+
+- COMMAND
+- DragSite::include
+ class
+ type
+ event
+
+- DragSite::register
+ path
+ ?option value...?
+
+- DragSite::setdrag
+ path
+ subpath
+ initcmd
+ endcmd
+ ?force?
+
+
+
+DESCRIPTION
+
+
+Commands of this namespace enable user to define a BWidget or a Tk widget as a drag site.
+
+
+
+
+
+COMMAND
+- DragSite::include
+ class
+ type
+ event
+
-
+
+This command provides a simple way to include options relatives to a drag site into
+BWidget resources definition.
+It includes the options needed for register: -dragevent, initialized to
+event, -draginitcmd and -dragendcmd, initialized to empty string,
+and two new options:
+
+-dragenabled | Specifies wether or not drag is active (initialized to 0)
+ |
-dragtype | Default or alternate dragged data type (initialized to type)
+ |
+
+
+- DragSite::register
+ path
+ ?option value...?
+
-
+
+This command is used to declare path as a drag site. Options are:
+
+
+
- -dragendcmd
+-
+
+Command called when drag terminates (ie when user release drag icon).
+This command is called with the following arguments:
+
+- the pathname of the drag source (the widget itself),
+
- the pathname of the drop target,
+
- the operation,
+
- the type of the dragged data,
+
- the dragged data,
+
- result of the drop (result of the call to -dropcmd of the target),
+
+If the drop does not occurs, the target and the operation are empty string and the result
+is 0.
+
+
+
+- -dragevent
+-
+
+Specifies the number of the mouse button associated to the drag.
+Must be 1, 2 or 3.
+
+
+
+- -draginitcmd
+-
+
+Command called when drag initiates. When the event of option dragevent occurs on
+path, this command is called with the following arguments:
+
+- pathname of the drag source (path),
+
- root x-coordinate of pointer,
+
- root y-coordinate of pointer,
+
- a toplevel created to represent dragged data. When returning, if it
+has no children, a bitmap is automatically displayed.
+
+If the command returns an empty string, then the drag will be
+suppressed. Otherwise the command must return a list containing three
+elements:
+
+- the type of the data,
+
- the list of acceptable basic operations (copy, move and link)
+
- and the data.
+
+Note that even if copy does not appear in the list of basic
+operation, it is considered as an acceptable operation, since
+copy semantic does not modify the drag source.
+
+
+
+
+- DragSite::setdrag
+ path
+ subpath
+ initcmd
+ endcmd
+ ?force?
+
-
+
+This command provides a simple way to call register during a BWidget creation or
+configuration.
+
+- path is the pathname of the BWidget,
+
- subpath is the pathname of the tk widget where drag event occurs,
+
- initcmd BWidget command for drag-init event,
+
- endcmd BWidget command for drag-end event,
+
- force specifies wether or not to call register whenever no option value has
+changed (0 by default - for BWidget configuration, use 1 for BWidget creation).
+
+setdrag verifies the modification flag of options dragenabled and
+dragevent and calls register if needed according to the options values and
+initcmd and endcmd arguments. draginitcmd and dragendcmd are not
+taken from options of widget because they are considered as user command, called by
+BWidget implementation of drag-init and drag-end events.
+
+
+
diff --git a/lib/bwidget/BWman/DropSite.html b/lib/bwidget/BWman/DropSite.html
new file mode 100644
index 0000000..5073ce6
--- /dev/null
+++ b/lib/bwidget/BWman/DropSite.html
@@ -0,0 +1,266 @@
+
+DropSite
+
+- NAME
+- DropSite
+ - Commands set for Drop facilities
+
+
+- COMMAND
+- DropSite::include
+ class
+ types
+
+- DropSite::register
+ path
+ ?option value...?
+
+- DropSite::setcursor
+ cursor
+
+- DropSite::setdrop
+ path
+ subpath
+ dropover
+ drop
+ ?force?
+
+- DropSite::setoperation
+ op
+
+
+
+DESCRIPTION
+
+
+Commands of this namespace enable user to define a BWidget or a Tk widget as a drop site.
+A drop site is composed of the type of object that can be dropped and associated operation,
+a command called when drop occurs, and a command when an object is dragged over the widget.
+A drop site must have at least one type of acceptable object and a drop command.
+
+
+
+COMMAND
+- DropSite::include
+ class
+ types
+
-
+
+This command provides a simple way to include options relatives to a drop site into
+BWidget resources definition.
+It includes the options needed for register, -dropovercmd and -dropcmd,
+initialized to empty string, and -droptypes, initialized to types,
+and one new option:
+
+-dropenabled | Specifies wether or not drop is active (initialized to 0)
+ |
+
+
+- DropSite::register
+ path
+ ?option value...?
+
-
+
+This command is used to declare path as a drop site. Options are:
+
+
+
- -dropcmd
+-
+
+This command is called when user release the drag icon over a valid
+drop target widget. Arguments passed to the command are:
+
+
+- pathname of the drop target (the widget itself),
+
- pathname of the drag source,
+
- root x-coordinate of the pointer,
+
- root y-coordinate of the pointer,
+
- operation,
+
- type of the dragged data,
+
- dragged data.
+
+
+Its return values is passed as a result to the -dragendcmd
+command of the drag source widget.
+
+
+
+- -dropovercmd
+-
+
+This command can be used to provide a dynamic drag while drag-over events.
+While a drag occurs, events <Enter>, <Motion> and <Leave> are catched.
+Arguments passed to the command are:
+
+- pathname of the drop target (the widget itself),
+
- pathname of the drag source,
+
- event over the drop target: enter, motion or leave,
+
- root x-coordinate of the pointer,
+
- root y-coordinate of the pointer,
+
- operation,
+
- type of the dragged data,
+
- dragged data.
+
+Command must the new status of the drag:
+
+- 0 if widget refuse this drag. Command will not be recalled on motion/leave event.
+
- 1 if widget accept this drag. Command will not be recalled on motion/leave event.
+
- 2 if widget refuse this drag. Command will be recalled on each motion event to reevaluate.
+
- 3 if widget accept this drag. Command will be recalled on each motion event to reevaluate.
+
+
+Here is a list of events and associated actions on a DropSite widget. This example
+assumes that dragged data type is valid for the drop target.
+status is the status of the drag on a DropSite. Its value is:
+
+
+
+
+Event |
+Old status |
+Action |
+New status |
+
+
+<Enter> |
+
+- |
+
+if DropSite has dropovercmd, call it with enter |
+
+result of dropovercmd |
+
+
+else |
+
+1 |
+
+
+<Motion> |
+
+0 or 1 |
+ |
+
+unchanged |
+
+
+2 or 3 |
+
+call dropovercmd with motion |
+
+result of dropovercmd |
+
+
+<Leave> |
+
+0 or 1 |
+ |
+
+- |
+
+
+2 or 3 |
+
+call dropovercmd with leave |
+
+- |
+
+
+<Drop> |
+
+0 |
+
+call dragendcmd of drag source |
+
+- |
+
+
+1 |
+
+call dropcmd and call dragendcmd of drag source |
+
+
+2 |
+
+call dropovercmd with leave and call dragendcmd of drag source |
+
+
+3 |
+
+call dropcmd and call dragendcmd of drag source |
+
+
+
+
+
+
+- -droptypes
+-
+
+Specifies a list {type oplist ?type oplist? ...} of acceptable
+types and associated operations for the drop target.
+For each type, oplist is a list
+{descops mod ?descops mod? ...} describing operations and
+modifier keys for these operations.
+descops describe an operation. It can be a predefined operations (copy,
+move or link) or a new user defined operation, of the form {subop
+baseop ?bitmap?}.
+subop is the name given to the sub operation, baseop is the name of the
+base operation (copy, move or link) and bitmap is a bitmap
+to display for the operation.
+
If bitmap is empty, the default bitmap of the base operation is used for the
+sub operation.
+
subop can be a base operation, in order to change the bitmap of a base operation.
+In this case, baseop must be empty or equal to subop.
+
mod is the modifer key for the operation. It can be:
+
+- none to specify that no modifier key is pressed. This modifier can only be used
+with a sub operation named default (and vice versa), which has the behaviour of not
+display any bitmap operation. For all type, if the modifier none is not given, it is
+automatically associated to the default sub operation of a copy base operation.
+
- program to specifies a sub operation accessible only by DropSite::setoperation.
+
- A list combining shift, control and alt, which means their
+corresponding key.
+
+
+
+
+
+- DropSite::setcursor
+ cursor
+
-
+
+This command can be used within the script dragovercmd. It is usefull to provide
+visual effect about the state of the drag.
+
+- DropSite::setdrop
+ path
+ subpath
+ dropover
+ drop
+ ?force?
+
-
+
+This command provides a simple way to call register during a BWidget creation or
+configuration.
+
+- path is the pathname of the BWidget,
+
- subpath is the pathname of the tk widget where drag event occurs,
+
- dropover is a command for drag-over event,
+
- drop is a command for drop event,
+
- force specifies wether or not to call register whenever no option value
+has changed (0 by default - for BWidget configuration, use 1 for BWidget creation).
+
+setdrop verifies the modification flag of options dropenabled and
+droptypes and calls register if needed according to the options values and
+dropover and drop arguments. dropovercmd and dropcmd are not
+taken from options of widget because they are considered as user command, called by
+BWidget implementation of drag-over and drop events.
+
+
+- DropSite::setoperation
+ op
+
-
+Description text
+
+
diff --git a/lib/bwidget/BWman/DynamicHelp.html b/lib/bwidget/BWman/DynamicHelp.html
new file mode 100644
index 0000000..6a9dcd5
--- /dev/null
+++ b/lib/bwidget/BWman/DynamicHelp.html
@@ -0,0 +1,251 @@
+
+DynamicHelp
+
+- NAME
+- DynamicHelp
+ - Provide help to Tk widget or BWidget
+
+
+- COMMAND
+- DynamicHelp::add
+widget ?option value ...?
+
+- DynamicHelp::configure
+ ?option? ?value option value ...?
+
+- DynamicHelp::delete
+widget
+
+- DynamicHelp::include
+ class
+ type
+
+- DynamicHelp::register
+ path
+ type
+ ?arg...?
+
+- DynamicHelp::sethelp
+ path
+ subpath
+ ?force?
+
+
+
+DESCRIPTION
+
+Description text
+
+
+COMMAND
+
+- DynamicHelp::add
+ ?option value ...?
+
-
+
+This command adds dynamic help to the given widget.
+
+ - -command
+ -
+ If specified, refers to a command to execute to get the help
+ text to display. The command must return a string to display.
+ If the command returns an empty string, no help is displayed.
+
+
+
+ - -index
+ -
+ If specified, refers to a menu index to bind the help to instead of
+ a widget. If -type is not menu, this option is ignored.
+
+
+
+ - -item
+ -
+ If specified, refers to an item or tag on a canvas widget or to a tag
+ in a text widget to bind the help to instead of to a widget.
+
+
+
+ - -type
+ -
+ Specifies the type of help. Can be:
+ balloon, variable or menu.
+ Default is balloon.
+
+
+
+ - -text
+ -
+ The text to be displayed as help.
+
+
+
+ - -variable
+ -
+ Specifies a variable name to which the help string will be
+ written. Some other widget (e.g., a status bar) is
+ responsible for displaying this variable.
+
+
+
+
+ Creating dynamic help for a menu is a two-step process. The menu
+ itself must first be added and then each menu entry must be added
+ separately. Here is a brief example.
+
+
+
+
+ # create menu
+ menu .m -type menubar
+ # associate menubar to toplevel BEFORE DynamicHelp::register
+ # to make it works with menu clone name
+ . configure -menu .m
+ .m add cascade -label "File" -menu .m.file
+ menu .m.file
+ .m.file add command -label "Open..."
+ .m.file add command -label "Quit"
+ # create label for help, using variable varinfo
+ label .l -textvariable varinfo
+ # associate all entries of menu .m.file to variable varinfo
+ DynamicHelp::add .m.file -type menu -variable varinfo
+ # then declare entries of .m.file
+ DynamicHelp::add .m.file -type menu -index 0 -text "Detach menu"
+ DynamicHelp::add .m.file -type menu -index 1 -text "Open a file"
+ DynamicHelp::add .m.file -type menu -index 2 -text "Exit demo"
+ |
+
+
+
+- DynamicHelp::configure
+ ?option? ?value option value ...?
+
-
+This command configure the ballon help.
+
+
- -borderwidth
+-
+Width of the black border around the balloon.
+
+
+- -delay
+-
+Define the delay in millisecond of mouse inactivity before displaying
+the balloon.
+
+
+
+ - -state
+ -
+ Specifies one of two states for help balloons: normal and
+ disabled.
+
+ -
+ If state is disabled, help balloons will not be displayed
+ for any registered widget.
+
+
+- -topbackground
+-
+The background color of the toplevel window created for a balloon.
+
+
+
Other standard options are:
+
+
+
+- DynamicHelp::delete
+ widget
+
-
+ Delete all dynamic help for the given widget.
+
+
+- DynamicHelp::include
+ class
+ type
+
-
+Description text
+
+- DynamicHelp::register
+ path
+ type
+ ?arg...?
+
-
+
+Its use is deprecated. Use DynamicHelp::add instead.
+
+
+Register a help text to the widget path.
+type determines the type of the help or the type of the widget.
+Depending on type, other options must be provided.
+
+
+ type | options |
+ balloon | ?tagOrItem? text |
+ variable | ?tagOrItem? varName text |
+ menu | varName |
+ menuentry | index text |
+
+
If one of the option is missing or is empty, help is removed for this widget.
+
+
+If tagOrItem is specified, then path is a canvas or a text. In
+case of a canvas, tagOrItem is the name of a tag or item on the canvas
+to which the help will be bound. In case of a text, tagOrItem is the
+name of a tag on the text to which the help will be bound.
+
+
+For type other than balloon, varName is typically a variable
+linked to a label.
+
For menu, balloon type help is not available. To declare a help for menu,
+you first declare the menu, and then entries of this menu.
+
For example:
+
+
+
+
+ # create menu
+menu .m -type menubar
+# associate menubar to toplevel BEFORE DynamicHelp::register
+# to make it works with menu clone name
+. configure -menu .m
+.m add cascade -label "File" -menu .m.file
+menu .m.file
+.m.file add command -label "Open..."
+.m.file add command -label "Quit"
+# create label for help, using variable varinfo
+label .l -textvariable varinfo
+# associate all entries of menu .m.file to variable varinfo
+DynamicHelp::register .m.file menu varinfo
+# then declare entries of .m.file
+DynamicHelp::register .m.file menuentry 0 "Detach menu"
+DynamicHelp::register .m.file menuentry 1 "Open a file"
+DynamicHelp::register .m.file menuentry 2 "Exit demo"
+ |
+
+
Notice that if popup menu is owned by a menubar, you must associate first the menubar
+to its toplevel. In this case, when you create a menu popup, its clone window is also
+created, and DynamicHelp::register detects the exitence of the clone window and maps
+events to it.
+
+- DynamicHelp::sethelp
+ path
+ subpath
+ ?force?
+
-
+Description text
+
+
diff --git a/lib/bwidget/BWman/Entry.html b/lib/bwidget/BWman/Entry.html
new file mode 100644
index 0000000..38da972
--- /dev/null
+++ b/lib/bwidget/BWman/Entry.html
@@ -0,0 +1,341 @@
+
+Entry
+
+- NAME
+- Entry
+ - Entry widget with state option, dynamic help and drag and drop facilities
+
+
+- CREATION
+- Entry pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName invoke
+
+
+
+DESCRIPTION
+
+
+The Entry widget extends the default Tk entry. Options have been added to provide
+visual effect depending on the state of the Entry,
+DynamicHelp options,
+and Drag and
+Drop.
+Entry behaves much like a Label, with text option to set its contents.
+
Tk entry command can also be used on Entry widget.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -command
+-
+
+Specifies a command when user press <Return> in the Entry.
+
+
+- -dragenabled
+-
+A boolean specifying if drag is enabled.
+
+
+- -dragendcmd
+-
+
+Specifies a command to be called when drag ended.
+dragendcmd must be a command conforming to the description of the
+option dragendcmd of DragSite::register.
+
+
If dragendcmd is empty, the internal dragend command updates the entry
+following the operation (move or copy) and the dragged data
+(whole or selected part of the entry).
+
+
+
+- -dragevent
+-
+
+Specifies the number of the mouse button associated to the drag.
+Must be 1, 2 or 3.
+
+
+
+- -draginitcmd
+-
+
+Specifies a command to be called when dragevent occurs on widget.
+draginitcmd must be a command conforming to the description of the
+option draginitcmd of DragSite::register.
+
+
if draginitcmd is empty, the command refuse the drag if entry is empty or if
+portion of text is selected and event doesn't occur above the selection. In all other cases,
+the command returns:
+
+- as the data type, the value of option dragtype or TEXT if empty,
+
- as the operations, {copy move} if state is normal and editable
+is true, or {copy} only in other cases,
+
- as the data, the whole content or the selected portion of the entry.
+
+
+
+
+- -dragtype
+-
+
+Specifies an alternate type of dragged object.
+
+
+
+- -dropcmd
+-
+
+Entry has a command wrapper for drop events. This command stops auto scrolling
+and extract current position.
+
If dropcmd is not empty, it is called with the following arguments:
+
+- the pathname of the Entry,
+
- the pathname of the drag source,
+
- the numeric index in the entry designated by the cursor,
+
- the current operation,
+
- the data type,
+
- the data.
+
+and must return a value conforming to dropcmd option described in
+DropSite::register.
+If dropcmd is empty, the wrapper updates the entry following the type of data:
+
+COLOR or FGCOLOR |
+reconfigure the foreground of the Entry |
+
BGCOLOR |
+reconfigure the background of the Entry |
+
TEXT, or any other tag |
+reconfigure the Entry to display the associated string. |
+
+and returns 1.
+
+
+
+- -dropenabled
+-
+A boolean specifying if drop is enabled.
+
+
+- -dropovercmd
+-
+
+Entry has a command wrapper for drag-over events. This command enables auto scrolling
+and position extraction during the drag-over.
+
If dropovercmd is empty, the wrapper accepts the drop if editable option is
+true and state option is normal.
+
If dropovercmd is not empty, it is called with the following arguments:
+
+- the pathname of the Entry,
+
- the pathname of the drag source,
+
- the event,
+
- the numeric index in the entry designated by the cursor,
+
- the current operation,
+
- the data type,
+
- the data.
+
+and must return a value conforming to dropovercmd option described in
+DropSite::register.
+
+
+
+- -droptypes
+-
+
+Specifies a list of accepted dropped object/operation.
+See option droptypes of
+DropSite::register.
+for more infromation.
+
+Default accepts FGCOLOR, COLOR, BGCOLOR and TEXT,
+all with copy and move operations.
+
+
+
+- -editable
+-
+
+Specifies whether the Entry is editable by the user. Equivalent to the state option
+of the Tk entry widget.
+
+
+- -helptext
+-
+
+Text for dynamic help. If empty, no help is available for this widget.
+See also DynamicHelp.
+
+
+- -helptype
+-
+Type of dynamic help. Use balloon or variable.
+See also DynamicHelp.
+
+
+- -helpvar
+-
+Variable to use when helptype option is variable.
+See also DynamicHelp.
+
+
+- -show
+-
+
+If this option is specified, then the true contents of the entry are not displayed in the
+window. Instead, each character in the entry's value will be displayed as the first character
+in the value of this option, such as ``*''. This is useful, for example, if the entry is to
+be used to enter a password. If characters in the entry are selected and copied elsewhere, the
+information copied will be what is displayed, not the true contents of the entry.
+
+
+- -state
+-
+
+Specifies one of two states for the Entry: normal or disabled.
+In normal state the text of the Entry is displayed using the foreground option.
+In disabled state the text of the Entry is displayed using the disabledforeground
+option. If the entry is disabled then the value may not be changed by user input
+and no insertion cursor will be displayed, even if the input focus is in the widget.
+Disabled state is the same as not editable with visual effect.
+
+
+- -width
+-
+
+Specifies an integer value indicating the desired width of the entry window, in average-size
+characters of the widget's font. If the value is less than or equal to zero, the widget picks
+a size just large enough to hold its current text.
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName invoke
+
-
+
+Calls the command specified by the option -command.
+
+
+
diff --git a/lib/bwidget/BWman/Label.html b/lib/bwidget/BWman/Label.html
new file mode 100644
index 0000000..384b323
--- /dev/null
+++ b/lib/bwidget/BWman/Label.html
@@ -0,0 +1,362 @@
+
+Label
+
+- NAME
+- Label
+ - Label widget with state option, dynamic help and drag and drop facilities
+
+
+- CREATION
+- Label pathName ?option value...?
+
+
+- STANDARD OPTIONS
+- Not themed
+
+- Themed
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName setfocus
+
+
+
+DESCRIPTION
+
+
+The Label widget extends the default Tk label. Options have been added to provide
+visual effect depending on the state of the Label, DynamicHelp options, and Drag
+ and Drop.
+
+
+WIDGET-SPECIFIC OPTIONS
+- -dragenabled
+-
+A boolean specifying if drag is enabled.
+
+
+- -dragendcmd
+-
+
+Specifies a command to be called when drag ended.
+dragendcmd must be a command conforming to the description of the
+option dragendcmd of DragSite::register.
+
+
+
+- -dragevent
+-
+
+Specifies the number of the mouse button associated to the drag.
+Must be 1, 2 or 3.
+
+
+
+- -draginitcmd
+-
+
+Specifies a command to be called when dragevent occurs on widget.
+draginitcmd must be a command conforming to the description of the
+option draginitcmd of DragSite::register.
+
+
If draginitcmd is empty, the internal draginitcmd command is used instead
+and returns:
+
+IMAGE {copy} <image name>
+ | if an image is displayed.
+ |
BITMAP {copy} <bitmap name>
+ | if a bitmap is displayed.
+ |
TEXT {copy} <text>
+ | if a text is displayed.
+ |
+Note that if dragtype option is not empty, its value is used instead of those above.
+
+
+
+- -dragtype
+-
+
+Specifies an alternate type of dragged object.
+
+
+
+- -dropcmd
+-
+
+Specifies a command to be called when drop occurs on the widget.
+dropcmd must be a command conforming to the description of the
+option dropcmd of DropSite::register.
+
+
If dropcmd is empty, the command updates the label following the type of the data:
+
+COLOR or FGCOLOR |
+reconfigure the foreground of the Label. |
+
BGCOLOR |
+reconfigure the background of the Label. |
+
IMAGE |
+reconfigure the Label to display the associated image. |
+
BITMAP |
+reconfigure the Label to display the associated bitmap.
+image option is set to empty. |
+
TEXT, or any other tag |
+reconfigure the Label to display the associated string.
+image and bitmap options are set to empty. |
+
+and returns 1.
+
+
+
+- -dropenabled
+-
+A boolean specifying if drop is enabled.
+
+
+- -dropovercmd
+-
+
+Specifies a command to be called when drag icon is over the widget.
+dropovercmd must be a command conforming to the description of the
+option dropovercmd of DropSite::register.
+
+
If dropovercmd is empty, Label always accepts the drop if data type is
+FGCOLOR, COLOR, BGCOLOR, and accepts all other data type only if
+state is normal.
+
+
+
+- -droptypes
+-
+
+Specifies a list of accepted dropped object/operation.
+See option droptypes of
+DropSite::register.
+for more infromation.
+
+Default accepts FGCOLOR, COLOR, BGCOLOR, TEXT, BITMAP
+and IMAGE, all with copy and move operations.
+
+
+
+- -focus
+-
+
+Specifies a pathname to set the focus on for Label::setfocus command.
+
+
+
+- -height
+-
+
+Specifies a desired height for the label.
+If an image or bitmap is being displayed in the label then the value is in
+screen units, for text it is in lines of text.
+If this option isn't specified, the label's desired height is computed
+from the size of the image or bitmap or text being displayed in it.
+Option not available for themed widgets.
+
+
+- -helptext
+-
+
+Text for dynamic help. If empty, no help is available for this widget.
+See also DynamicHelp.
+
+
+- -helptype
+-
+Type of dynamic help. Use balloon or variable.
+See also DynamicHelp.
+
+
+- -helpvar
+-
+Variable to use when helptype option is variable.
+See also DynamicHelp.
+
+
+- -name
+-
+
+Specifies a standard name for the label. If the option *nameName is
+found in the resource database, then text and underline options
+are extracted from its value.
+
+
+
+- -state
+-
+
+Specifies one of two states for the Label: normal or disabled.
+In normal state the text of the Label is displayed using the foreground option.
+In disabled state the text of the Label is displayed using the disabledforeground option.
+
+
+- -underline
+-
+
+Specifies the integer index of a character to underline in the label.
+0 corresponds to the first character of the text displayed, 1 to the next character,
+and so on.
+
The binding <Alt-char> is automatically set on the toplevel
+of the Label to call Label::setfocus.
+
+
+
+- -width
+-
+
+Specifies a desired width for the label.
+If an image or bitmap is being displayed in the label then the value is in
+screen units, for text it is in characters.
+If this option isn't specified, the label's desired width is computed
+from the size of the image or bitmap or text being displayed in it.
+
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName setfocus
+
-
+
+Set the focus on the pathname given by -focus option if -state is normal.
+
+
+
diff --git a/lib/bwidget/BWman/LabelEntry.html b/lib/bwidget/BWman/LabelEntry.html
new file mode 100644
index 0000000..c0858c7
--- /dev/null
+++ b/lib/bwidget/BWman/LabelEntry.html
@@ -0,0 +1,194 @@
+
+LabelEntry
+
+- NAME
+- LabelEntry
+ -
+LabelFrame containing an Entry widget.
+
+
+
+- CREATION
+- LabelEntry pathName ?option value...?
+
+
+- OPTIONS from Entry
+
+
+ -borderwidth or -bd |
+ -command |
+
+
+ -disabledforeground |
+ -dragenabled |
+
+
+ -dragendcmd |
+ -dragevent |
+
+
+ -draginitcmd |
+ -dragtype |
+
+
+ -dropcmd |
+ -dropenabled |
+
+
+ -dropovercmd |
+ -droptypes |
+
+
+ -editable |
+ -entrybg (see -background) |
+
+
+ -entryfg (see -foreground) |
+ -exportselection |
+
+
+ -font |
+ -helptext |
+
+
+ -helptype |
+ -helpvar |
+
+
+ -highlightbackground |
+ -highlightcolor |
+
+
+ -highlightthickness |
+ -insertbackground |
+
+
+ -insertborderwidth |
+ -insertofftime |
+
+
+ -insertontime |
+ -insertwidth |
+
+
+ -justify |
+ -relief |
+
+
+ -selectbackground |
+ -selectborderwidth |
+
+
+ -selectforeground |
+ -show |
+
+
+ -state |
+ -takefocus |
+
+
+ -text |
+ -textvariable |
+
+
+ -width |
+ -xscrollcommand |
+
+
+
+
+- OPTIONS from LabelFrame
+
+
+ -background or -bg |
+ -disabledforeground |
+
+
+ -foreground or -fg |
+ -helptext |
+
+
+ -helptype |
+ -helpvar |
+
+
+ -label (see -text) |
+ -labelanchor (see -anchor) |
+
+
+ -labelfont (see -font) |
+ -labelheight (see -height) |
+
+
+ -labeljustify (see -justify) |
+ -labelwidth (see -width) |
+
+
+ -name |
+ -padx |
+
+
+ -pady |
+ -side |
+
+
+ -state |
+ -underline |
+
+
+ -wraplength |
+
+
+
+- WIDGET COMMAND
+- pathName bind
+ ?arg...?
+
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+
+
+DESCRIPTION
+
+
+LabelEntry is a widget composed of LabelFrame widget
+containing an Entry widget.
+Tk entry command can also be used on LabelEntry widget.
+
+
+
+WIDGET COMMAND
+- pathName bind
+ ?arg...?
+
-
+
+Set bindings on the entry widget.
+
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+
diff --git a/lib/bwidget/BWman/LabelFrame.html b/lib/bwidget/BWman/LabelFrame.html
new file mode 100644
index 0000000..f0fb424
--- /dev/null
+++ b/lib/bwidget/BWman/LabelFrame.html
@@ -0,0 +1,144 @@
+
+LabelFrame
+
+- NAME
+- LabelFrame
+ - Frame with a Label
+
+
+- CREATION
+- LabelFrame pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- OPTIONS from Label
+
+
+ -anchor |
+ -background or -bg |
+
+
+ -bitmap |
+ -disabledforeground |
+
+
+ -focus |
+ -font |
+
+
+ -foreground or -fg |
+ -height |
+
+
+ -helptext |
+ -helptype |
+
+
+ -helpvar |
+ -image |
+
+
+ -justify |
+ -name |
+
+
+ -padx |
+ -pady |
+
+
+ -state |
+ -text |
+
+
+ -textvariable |
+ -underline |
+
+
+ -width |
+ -wraplength |
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- LabelFrame::align
+ ?arg...?
+
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName getframe
+
+
+
+DESCRIPTION
+
+
+LabelFrame enables user to create a frame with a
+Label positionned at any side.
+LabelFrame is used by ComboBox
+and SpinBox.
+
+
+WIDGET-SPECIFIC OPTIONS
+- -side (read-only)
+-
+
+Specifies where to position the Label relative to the user frame: top, bottom, left or right.
+
+
+
+WIDGET COMMAND
+- LabelFrame::align
+ ?arg...?
+
-
+
+This command align label of all widget given by args of class LabelFrame
+(or "derived") by setting their width to the max one +1
+
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName getframe
+
-
+
+Return the frame where the user can create any other widget.
+
+
diff --git a/lib/bwidget/BWman/ListBox.html b/lib/bwidget/BWman/ListBox.html
new file mode 100644
index 0000000..de4bb4c
--- /dev/null
+++ b/lib/bwidget/BWman/ListBox.html
@@ -0,0 +1,675 @@
+
+ListBox
+
+- NAME
+- ListBox
+ - ListBox widget
+
+
+- CREATION
+- ListBox pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName bindImage
+ event
+ script
+
+- pathName bindText
+ event
+ script
+
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName delete
+ ?arg...?
+
+- pathName edit
+ item
+ text
+ ?verifycmd?
+ ?clickres?
+ ?select?
+
+- pathName exists
+ item
+
+- pathName index
+ item
+
+- pathName insert
+ index
+ item
+ ?option value...?
+
+- pathName item
+ first
+ ?last?
+
+- pathName itemcget
+ item
+ option
+
+- pathName itemconfigure
+ item
+ ?option? ?value option value ...?
+
+- pathName items
+ ?first?
+ ?last?
+
+- pathName move
+ item
+ index
+
+- pathName reorder
+ neworder
+
+- pathName see
+ item
+
+- pathName selection
+ cmd
+ ?arg...?
+
+- pathName xview
+ ?arg...?
+
+- pathName yview
+ ?arg...?
+
+
+
+DESCRIPTION
+
+
+ListBox widget uses canvas to display a list of items.
+Each item is composed of a label with its own font and foreground attributes, and an optional
+image or window. Each item is drawn in a single line, whose height is defined by the
+deltay option, so they must have at most this height.
+A item is uniquely identified by a string given at creation (by the
+insert command). The ListBox can have one or more columns, depending on
+multicolumn option. The user do not handle columns; the number of columns
+is determined following the height of the ListBox in order to see each item vertically.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -autofocus
+-
+ If this option is true, the listbox will take focus any time the user
+ clicks in it. Without focus, the listbox's mouse wheel bindings will
+ not work properly. The default is true.
+
+
+
+- -deltax
+-
+
+Specifies horizontal pad between each columns.
+
+
+
+- -deltay
+-
+
+Specifies vertical size of the items.
+
+
+
+- -dragenabled
+-
+A boolean specifying if drag is enabled.
+
+
+- -dragendcmd
+-
+
+Specifies a command to be called when drag ended.
+dragendcmd must be a command conforming to the description of the
+option dragendcmd of DragSite::register.
+
+
+
+- -dragevent
+-
+
+Specifies the number of the mouse button associated to the drag.
+Must be 1, 2 or 3.
+
+
+
+- -draginitcmd
+-
+
+ListBox has a command wrapper for drag-init events. This command refused the drag
+if no item is designated. In other cases:
+
If draginitcmd is empty, it returns:
+
+- the value of option dragtype or LISTBOX_ITEM if empty as the data type,
+
- {move copy link} as the operations,
+
- the item identifier as the data.
+
+If draginitcmd is not empty, it is called with the following arguments:
+
+- the pathname of the listbox,
+
- the identifier of the dragged item,
+
- the toplevel created to represent dragged data.
+
+and must return a value conforming to draginitcmd option described in
+DragSite::register.
+
+
+
+- -dragtype
+-
+
+Specifies an alternate type of dragged object.
+
+
+
+- -dropcmd
+-
+
+ListBox has a command wrapper for drop events. This command stops auto scrolling
+and extract item and position.
+
If dropcmd is not empty, it is called with the following arguments:
+
+- the pathname of the listbox,
+
- the pathname of the drag source,
+
- a list describing where the drop occurs. It can be:
+
+- {widget},
+
- {item item} or
+
- {position index}.
+
+ - the current operation,
+
- the data type,
+
- the data.
+
+
+
+The default drop command allows for drag-and-drop within the listbox but
+not to or from other widgets.
+
+
+
+
+- -dropenabled
+-
+A boolean specifying if drop is enabled.
+
+
+- -dropovercmd
+-
+
+LsitBox has a command wrapper for drag-over events. This command enables auto scrolling
+and position extraction during the drag-over.
+If dropovercmd is not empty, the command is called with the following aguments:
+
+- the pathname of the listbox,
+
- the pathname of the drag source,
+
- a list describing where the drop can occur, whose elements are:
+
+- the string widget if dropovertype option contains w, else empty string.
+
- the targeted item if drag icon points an item and dropovertype option contains
+i, else empty string.
+
- an index within two items where drag icon points to if dropovertype option
+contains p, else empty string.
+
- optionally, the preferred method if drop can occur both inside an item and between two
+items. The value is position or item.
+
+ - the current operation,
+
- the data type,
+
- the data.
+
+The command must return a list with two elements:
+
+- the drop status, conforming to those described in dropovercmd option of
+DropSite::register,
+
- the choosen method: widget, item or position.
+
+
+
+
+- -dropovermode
+-
+
+Specifies the type of drop-over interaction. Must be a combination of
+w, which specifies that drop can occurs everywhere on widget,
+p, which specifies that drop can occurs between two items,
+and i, which specifies that drop occurs inside items.
+
+
+
+- -droptypes
+-
+
+Specifies a list of accepted dropped object/operation.
+See option droptypes of
+DropSite::register.
+for more infromation.
+
+
Default is LISTBOX_ITEM with operations copy and move.
+
+
+
+- -height
+-
+
+Specifies the desired height for the listbox in units of deltay pixels.
+
+
+
+- -multicolumn
+-
+
+Specifies wether or not ListBox layouts items in order to see each one vertically.
+
+
+
+- -padx
+-
+
+Specifies distance between image or window and text of the items.
+
+
+
+- -redraw
+-
+
+Specifies wether or not the listbox should be redrawn when entering idle.
+Set it to false if you call update while modifying the listbox.
+
+
+
+
+- -selectfill
+-
+ If true, the listbox will draw a selection rectangle that fills the
+ listbox from left-to-right instead of just drawing a box around the
+ selected item. This more closely mimics the standard Tk listbox.
+
+
+
+- -selectmode
+-
+
+Specifies the desired selection-mode for the listbox. Must be one of
+none, single or multiple. selectmode single
+allows to select 1 item by its text or image. selectmode multiple
+allows to select multiple items by their text or image. For more info on
+selectmodes single or multiple, see the Tk listbox
+command. Default value for selectmode is none.
+
+
+
+- -width
+-
+
+Specifies the desired width for the listbox in units of 8 pixels.
+
+
+
+
+WIDGET COMMAND
+- pathName bindImage
+ event
+ script
+
-
+
+This command associates a command to execute whenever the event
+sequence given by event occurs on the image of a item.
+The item idenfier on which the event occurs is appended to the command.
+
+
+Any occurrence of %W in script is substituted with the
+path of the listbox.
+
+
+
+- pathName bindText
+ event
+ script
+
-
+
+This command associates a command to execute whenever the event
+sequence given by event occurs on the label of a item.
+The item idenfier on which the event occurs is appended to the command.
+
+
+Any occurrence of %W in script is substituted with the
+path of the listbox.
+
+
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName delete
+ ?arg...?
+
-
+
+Deletes all items in arg. arg can be a list
+of items or a list of list of items.
+To delete all items, do $pathName delete [$pathName items].
+
+
+- pathName edit
+ item
+ text
+ ?verifycmd?
+ ?clickres?
+ ?select?
+
-
+
+Provides a way for the user to edit in place the label of an item.
+
The command takes the initial text as argument and does not modify the label of the
+edited node, but returns an empty string if edition is canceled, or the typed text
+if edition is accepted.
+
When editing, the user can cancel by pressing Escape, or accept by pressing Return.
+
clickres specifies what to do if the user click outside the editable area.
+If clickres is 0 (the default), the edition is canceled.
+If clickres is 1, the edition is accepted.
+In all other case, the edition continues.
+
If edition is accepted and modifycmd is not empty, then it is called with
+the new text as argument and must return 1 to accept the new text, 0 to refuse it
+and continue edition.
+
select specifies wether or not the initial text should be selected. Default is 1.
+
+
+- pathName exists
+ item
+
-
+
+Returns 1 if item exists in the listbox, else 0.
+
+
+- pathName index
+ item
+
-
+
+Returns the position of item in the list.
+
+
+- pathName insert
+ index
+ item
+ ?option value...?
+
-
+
+
+Inserts a new item identified by item in the list at position index.
+
+
+
+Any instance of #auto within the item name will be replaced by the
+number of the item in the order of insertion.
+
+
+
+
- -data
+-
+
+User data associated to the item.
+
+
+
+- -fill
+-
+
+Specifies the foreground color of the label of the item.
+
+
+
+- -font
+-
+
+Specifies a font for the label of the item.
+
+
+
+- -image
+-
+
+Specifies an image to display at the left of the label of the item.
+window option override image.
+
+
+- -indent
+-
+
+Specifies the amount of extra space in pixels at the left of the item.
+
+
+
+- -text
+-
+
+Specifies the label of the item.
+
+
+
+- -window
+-
+
+Specifies a pathname to display at the left of the label of the item.
+window option override image.
+
+
+
+- pathName item
+ first
+ ?last?
+
-
+
+Its use is deprecated. Use items instead.
+If last is omitted, returns the item at index first in the list,
+or an empty string if first refers to a non-existent element.
+If last is specified, the command returns a list whose elements are all
+of the items between first and last, inclusive.
+Both first and last may have any of the standard forms for indices.
+
+
+- pathName itemcget
+ item
+ option
+
-
+
+Returns the current value of a configuration option for the item.
+Option may have any of the values accepted by the item creation command.
+
+
+- pathName itemconfigure
+ item
+ ?option? ?value option value ...?
+
-
+
+This command is similar to the configure command, except that it applies to the
+options for an individual item, whereas configure applies to the options for
+the widget as a whole. Options may have any of the values accepted by the
+item creation widget command. If options are specified, options are modified as indicated
+in the command and the command returns an empty string. If no options are specified,
+returns a list describing the current options for the item.
+Read-only options are not be modified.
+
+
+- pathName items
+ ?first?
+ ?last?
+
-
+
+If first and last are omitted, returns the list of all items.
+If first is specified and last omitted, returns the item at index
+first, or an empty string if first refers to a non-existent element.
+If first and last are specified, the command returns a list whose elements
+are all of the items between first and last,
+inclusive. Both first and last may have any of the standard
+forms for indices.
+
+
+- pathName move
+ item
+ index
+
-
+
+Moves item at position index in the list.
+
+
+- pathName reorder
+ neworder
+
-
+
+Modifies the order of items in the listbox given by neworder. Items that do not
+appear in neworder are no moved.
+
+
+- pathName see
+ item
+
-
+
+Arrange the scrolling area to make item visible.
+
+
+- pathName selection
+ cmd
+ ?arg...?
+
-
+
+Modifies the list of selected items following cmd:
+
+- clear
+
- remove all items of the selection.
+
- set
+
- set the selection to all items in arg
+
- add
+
- add all items of arg in the selection
+
- remove
+
- remove all items of arg of the selection
+
- get
+
- return the current selected items
+
+
+
+- pathName xview
+ ?arg...?
+
-
+
+Standard command to enable horizontal scrolling of pathName.
+
+
+- pathName yview
+ ?arg...?
+
-
+
+Standard command to enable vertical scrolling of pathName.
+
+
+
+
+BINDINGS
+
+
+A <<ListboxSelect>> virtual event is generated any time the
+selection in the listbox changes.
+
+
+
+The listbox has all the standard mouse wheel bindings when it has focus.
+
+
+
diff --git a/lib/bwidget/BWman/MainFrame.html b/lib/bwidget/BWman/MainFrame.html
new file mode 100644
index 0000000..a658d20
--- /dev/null
+++ b/lib/bwidget/BWman/MainFrame.html
@@ -0,0 +1,297 @@
+
+MainFrame
+
+- NAME
+- MainFrame
+ - Manage toplevel with menu, toolbar and statusbar
+
+
+- CREATION
+- MainFrame pathName ?option value...?
+
+
+- OPTIONS from ProgressBar
+
+
+ -background or -bg |
+ -progressfg (see -foreground) |
+
+
+ -progressmax (see -maximum) |
+ -progresstype (see -type) |
+
+
+ -progressvar (see -variable) |
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName addindicator
+ ?arg...?
+
+- pathName addtoolbar
+
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName getframe
+
+- pathName getindicator
+ index
+
+- pathName getmenu
+ menuid
+
+- pathName gettoolbar
+ index
+
+- pathName setmenustate
+ tag
+ state
+
+- pathName showstatusbar
+ name
+
+- pathName showtoolbar
+ index
+ bool
+
+
+
+DESCRIPTION
+
+
+MainFrame manage toplevel to have:
+
+- simple menu creation, with automatic accelerator bindings and
+DynamicHelp association,
+
- one or more toolbars that user can hide,
+
- a status bar, displaying a user message or a menu description, and optionally a
+ProgressBar.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -height
+-
+
+Specifies the desired height for the user frame in any of the forms acceptable to
+Tk_GetPixels. If this option is less than or equal to zero (the default) then the window
+will not request any size at all.
+
+
+- -menu (read-only)
+-
+
+This option describes the menu. This is a list whose each five elements describe
+one cascade menu. It has the following form:
+{menuname tags menuId tearoff menuentries...}
+where menuentries is a list where each element describe one menu entry, which can be:
+
+- for a separator:
+ {separator}
+ - for a command:
+ {command menuname ?tags? ?description? ?accelerator? ?option value? ...}
+ - for a check button:
+ {checkbutton menuname ?tags? ?description? ?accelerator? ?option value? ...}
+ - for a radio button:
+ {radiobutton menuname ?tags? ?description? ?accelerator ?option value? ...}
+ - for a cascade menu:
+ {cascade menuname tags menuId tearoff menuentries}
+
+where:
+
+- menuname is the name of the menu. If it contains a &, the following character
+is automatically converted to the corresponding -underline option of menu add
+command.
+
- tags is the tags list for the entry, used for enabling or disabling menu
+entries with MainFrame::setmenustate.
+
- menuId is an id for the menu, from which you can get menu pathname with
+ MainFrame::getmenu.
+
- tearoff specifies if menu has tearoff entry.
+
- description specifies a string for DynamicHelp.
+
- accelerator specifies a key sequence. It is a list of two elements, where the first
+is one of Ctrl, Alt or CtrlAlt, and the second as letter or a digit.
+An accelerator string is build and corresponding binding set on the toplevel to invoke the
+menu entry.
+
- option value specifies additionnal options for the entry (see menu add
+command).
+
+Each value enclosed by ? are optional and defaulted to empty string, but must be
+provided if one or more following options is not empty.
+
Example:
+
+set descmenu {
+ "&File" {} {} 0 {
+ {command "&New" {} "Create a new document" {Ctrl n} -command Menu::new}
+ {command "&Open..." {} "Open an existing document" {Ctrl o} -command Menu::open}
+ {command "&Save" open "Save the document" {Ctrl s} -command Menu::save}
+ {cascade "&Export" {} export 0 {
+ {command "Format &1" open "Export document to format 1" {} -command {Menu::export 1}}
+ {command "Format &2" open "Export document to format 2" {} -command {Menu::export 2}}
+ }}
+ {separator}
+ {cascade "&Recent files" {} recent 0 {}}
+ {separator}
+ {command "E&xit" {} "Exit the application" {} -command Menu::exit}
+ }
+ "&Options" {} {} 0 {
+ {checkbutton "Toolbar" {} "Show/hide toolbar" {}
+ -variable Menu::_drawtoolbar
+ -command {$Menu::_mainframe showtoolbar toolbar $Menu::_drawtoolbar}
+ }
+ }
+}
+
+
+
+
+- -separator (read-only)
+-
+
+Specifies if separator should be drawn at the top and/or at the bottom of the user window.
+Must be one of the values none, top, bottom or both.
+It depends on the relief of subwidgets of user window.
+
+
+- -textvariable
+-
+
+Specifies the textvariable option for the label of the status bar.
+DynamicHelp description
+of menu entries are mapped to this variable at the creation of the MainFrame.
+If this variable is changed by MainFrame::configure, menu description will
+not be available.
+
You change the text of the label by modifying the value of the variable.
+
+
+- -width
+-
+
+Specifies the desired width for the user frame in any of the forms acceptable to
+Tk_GetPixels. If this option is less than or equal to zero (the default) then the window
+will not request any size at all.
+
+
+- -sizegrip (themed, read-only)
+-
+
+If bool argument is true and themed mode, show a ttk sizegrip widget in the lower-right corner.
+
+
+WIDGET COMMAND
+- pathName addindicator
+ ?arg...?
+
-
+
+Add an indicator box at the right of the status bar. Each indicator are added from left
+to right. An indicator is a Tk label widget configured with option-value pair
+given by ?arg...?. -relief and -borderwidth options are respetively
+defaulted to sunken and 1. Returns the pathname of the created label.
+
+- pathName addtoolbar
+
-
+
+Add a toolbar to the MainFrame. Returns the pathname of the new window where to place
+toolbar items.
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName getframe
+
-
+
+Returns the pathname of the user window.
+
+- pathName getindicator
+ index
+
-
+
+Returns the pathname of the indexth added indicator.
+
+- pathName getmenu
+ menuid
+
-
+
+Returns the pathname of the menu whose id is menuid.
+
+- pathName getmenustate
+ tag
+ state
+
-
+
+Returns the state of the given menu tag.
+
+- pathName gettoolbar
+ index
+
-
+
+Returns the pathname of the indexth added toolbar.
+
+- pathName setmenustate
+ tag
+ state
+
-
+
+Set the -state option value of all the menu entries that have the tag tag
+to state.
+A menu entry is disabled, if one of its associated tags have state disabled.
+
+
+- pathName showstatusbar
+ name
+
-
+
+name is one of none, status or progression.
+Use none to hide the status bar, status to display the label only, or
+progression to display the label and the
+ProgressBar.
+
+- pathName showtoolbar
+ index
+ bool
+
-
+
+Hide if bool is 0, or show if bool is 1 the indexth added toolbar.
+To prevent your toplevel from resizing while hiding/showing toolbar,
+do [wm geometry $top [wm geometry $top]] when it is managed.
+
+
diff --git a/lib/bwidget/BWman/MessageDlg.html b/lib/bwidget/BWman/MessageDlg.html
new file mode 100644
index 0000000..f96d293
--- /dev/null
+++ b/lib/bwidget/BWman/MessageDlg.html
@@ -0,0 +1,218 @@
+
+MessageDlg
+
+- NAME
+- MessageDlg
+ - Message dialog box
+
+
+- CREATION
+- MessageDlg pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- OPTIONS from Dialog
+
+
+ -background or -bg |
+ -cancel |
+
+
+ -default |
+ -parent |
+
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+DESCRIPTION
+
+
+MessageDlg provides a simple way to display a message dialog.
+MessageDlg::create creates the message dialog, displays
+it and return the index of the pressed button, or -1 if it is destroyed.
+When returning, the dialog no longer exists.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -aspect
+-
+
+Specifies a non-negative integer value indicating desired
+aspect ratio for the text. The aspect ratio is specified as
+100*width/height. 100 means the text should
+be as wide as it is tall, 200 means the text should
+be twice as wide as it is tall, 50 means the text should
+be twice as tall as it is wide, and so on.
+Used to choose line length for text if width option
+isn't specified.
+Defaults to 150.
+
+
+
+- -buttons
+-
+
+Specifies a list of buttons to display when type option is user.
+If a button has a symbolic name, its associated text will be displayed.
+
+
+
+
+- -buttonwidth
+-
+ Specifies the standard width of the buttons in the dialog.
+
+
+
+- -icon
+-
+
+Specifies an icon to display. Must be one of the following: error, info,
+question or warning.
+
+
+
+- -justify
+-
+
+Specifies how to justify lines of text.
+Must be one of left, center, or right. Defaults
+to left.
+This option works together with the anchor, aspect,
+padx, pady, and width options to provide a variety
+of arrangements of the text within the window.
+The aspect and width options determine the amount of
+screen space needed to display the text.
+The anchor, padx, and pady options determine where this
+rectangular area is displayed within the widget's window, and the
+justify option determines how each line is displayed within that
+rectangular region.
+For example, suppose anchor is e and justify is
+left, and that the message window is much larger than needed
+for the text.
+The the text will displayed so that the left edges of all the lines
+line up and the right edge of the longest line is padx from
+the right side of the window; the entire text block will be centered
+in the vertical span of the window.
+
+
+
+- -message
+-
+
+Specifies the message to display in this message box.
+
+
+
+- -title
+-
+
+Specifies a string to display as the title of the message box.
+If the value is empty (the default), a default title will be set corresponding
+to the icon option.
+The default associated title is in english, and can be modified to set it in
+another language by specifying the resource:
+
*MessageDlg.nameTitle: value
+or the equivalent tcl command:
+ option add *MessageDlg.nameTitle value
+where name is the name of an icon as defined in the icon option.
+
For example, for french language, you can specify for a warning dialog:
+ option add *MessageDlg.warningTitle "Attention"
+
+
+
+- -type
+-
+
+Specifies a set of buttons to be displayed. The following values are possible:
+
-
+
+
+-
+abortretryignore
+
-
+Displays three buttons whose symbolic names are abort,
+retry and ignore.
+
-
+ok
+
-
+Displays one button whose symbolic name is ok.
+
-
+okcancel
+
-
+Displays two buttons whose symbolic names are ok and cancel.
+
-
+retrycancel
+
-
+Displays two buttons whose symbolic names are retry and cancel.
+
-
+yesno
+
-
+Displays two buttons whose symbolic names are yes and no.
+
-
+yesnocancel
+
-
+Displays three buttons whose symbolic names are yes, no
+and cancel.
+
+
-
+user
+
-
+Displays buttons of -buttons option.
+
-
+
+
+
+
+- -width
+-
+
+Specifies the length of lines in the window.
+If this option has a value greater than zero then the aspect
+option is ignored and the width option determines the line
+length.
+If this option has a value less than or equal to zero, then
+the aspect option determines the line length.
+
+
+
+
diff --git a/lib/bwidget/BWman/NoteBook.html b/lib/bwidget/BWman/NoteBook.html
new file mode 100644
index 0000000..776ebaa
--- /dev/null
+++ b/lib/bwidget/BWman/NoteBook.html
@@ -0,0 +1,374 @@
+
+NoteBook
+
+- NAME
+- NoteBook
+ - Notebook manager widget
+
+
+- CREATION
+- NoteBook pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- OPTIONS from ArrowButton
+
+
+ -activebackground |
+ -activeforeground |
+
+
+ -background or -bg |
+ -borderwidth or -bd |
+
+
+ -disabledforeground |
+ -foreground or -fg |
+
+
+ -repeatdelay |
+ -repeatinterval |
+
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName bindtabs
+ event
+ script
+
+- pathName cget
+ option
+
+- pathName compute_size
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName delete
+ page
+ ?destroyframe?
+
+- pathName getframe
+ page
+
+- pathName index
+ page
+
+- pathName insert
+ index
+ page
+ ?option value...?
+
+- pathName itemcget
+ page
+ option
+
+- pathName itemconfigure
+ page
+ ?option? ?value option value ...?
+
+- pathName move
+ page
+ index
+
+- pathName page
+ first
+ ?last?
+
+- pathName pages
+ ?first?
+ ?last?
+
+- pathName raise
+ ?page?
+
+- pathName see
+ page
+
+
+
+DESCRIPTION
+
+
+NoteBook widget manage a set of pages and displays one of them.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -arcradius
+-
+
+Specifies the amount of rounding effect at the corners of a tab. This value
+can be adjusted from 0 to 8 pixels with the default being 2 pixels. Usually,
+small values are preferable.
+
+
+- -height
+-
+
+Specifies the desired height for the pages. If this option is equal to zero (the default)
+then the window will not request any size at all.
+In this case, user may want to call NoteBook::compute_size to make NoteBook larger
+enough to contains the largest page.
+
+
+- -homogeneous
+-
+
+Specifies wether or not the label of the pages must have the same width.
+
+
+
+- -side
+-
+
+Specifies the side where to place the label of the pages. Must be one
+of top or bottom.
+
+
+
+- -tabbevelsize
+-
+
+Specifies the amount of bevel the tabs should have. This value can be adjusted from
+0 to 8 pixels with the default being 0 pixels. A zero pixel bevel is essentially rectangular
+while non-zero bevel size will look trapezoidal.
+
+
+
+- -tabpady
+-
+ Specifies the padding between the text in the tab and the top and bottom
+ of the tab. Padding may be a list of two values to specify padding for
+ top and bottom separately. Padding defaults to {0 6}.
+
+
+
+- -width
+-
+
+Specifies the desired width for the pages. If this option is equal to zero (the default)
+then the window will not request any size at all.
+In this case, user may want to call NoteBook::compute_size to make NoteBook larger
+enough to contains the largest page.
+
+
+
+WIDGET COMMAND
+- pathName bindtabs
+ event
+ script
+
-
+
+This command associates a command to execute whenever the event
+sequence given by event occurs on a tab. The page identifier on which
+the event occurs is appended to the command.
+
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName compute_size
+
-
+
+This command can be called to make the NoteBook large enough to contain the largest page.
+Note that if all pages use -createcmd, they will have no requested size.
+
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName delete
+ page
+ ?destroyframe?
+
-
+
+Deletes the page page. If destroyframe is 1 (the default), the frame
+associated to page is destroyed. If destroyframe is 0, the frame is not
+destroyed and is reused by further call to insert with the same page.
+
+
+- pathName getframe
+ page
+
-
+
+Returns the pathname of the page page.
+
+
+- pathName index
+ page
+
-
+
+Return the numerical index corresponding to the item.
+
+
+- pathName insert
+ index
+ page
+ ?option value...?
+
-
+
+Insert a new page idendified by page at position index in the pages list.
+index must be numeric or end. The pathname of the new page is returned.
+
+
+
- -createcmd
+-
+
+Specifies a command to be called the first time the page is raised.
+
+
+
+- -image
+-
+
+Specifies an image to display for the page at the left of the label
+
+
+
+- -leavecmd
+-
+
+Specifies a command to be called when a page is about to be leaved.
+The command must return 0 if the page can not be leaved, or 1 if it can.
+
+
+
+- -raisecmd
+-
+
+Specifies a command to be called each time the page is raised.
+
+
+
+- -state
+-
+
+Specifies the state of the page. Must be normal or disabled.
+
+
+
+- -text
+-
+
+Specifies a label to display for the page.
+
+
+
+
+- pathName itemcget
+ page
+ option
+
-
+
+Returns the current value of a configuration option for the item.
+Option may have any of the values accepted by the item creation command.
+
+
+- pathName itemconfigure
+ page
+ ?option? ?value option value ...?
+
-
+
+This command is similar to the configure command, except that it applies to the
+options for an individual item, whereas configure applies to the options for
+the widget as a whole. Options may have any of the values accepted by the
+item creation widget command. If options are specified, options are modified as indicated
+in the command and the command returns an empty string. If no options are specified,
+returns a list describing the current options for the item.
+Read-only options are not be modified.
+
+
+- pathName move
+ page
+ index
+
-
+
+Moves page tab to index index.
+
+
+- pathName page
+ first
+ ?last?
+
-
+
+Its use is deprecated. Use pages instead.
+If last is omitted, returns the page at index first, or an empty string if
+first refers to a non-existent element. If last is specified, the command
+returns a list whose elements are all of the pages between first and last,
+inclusive. Both first and last may have any of the standard
+forms for indices.
+
+
+- pathName pages
+ ?first?
+ ?last?
+
-
+
+If first and last are omitted, returns the list of all pages.
+If first is specified and last omitted, returns the page at index
+first, or an empty string if first refers to a non-existent element.
+If first and last are specified, the command returns a list whose elements
+are all of the pages between first and last,
+inclusive. Both first and last may have any of the standard
+forms for indices.
+
+
+- pathName raise
+ ?page?
+
-
+
+Raise the page page, or return the raised page if page is omitted.
+
+
+- pathName see
+ page
+
-
+
+Scrolls labels to make the label of the page page visible.
+
+
+
diff --git a/lib/bwidget/BWman/PagesManager.html b/lib/bwidget/BWman/PagesManager.html
new file mode 100644
index 0000000..e5edf61
--- /dev/null
+++ b/lib/bwidget/BWman/PagesManager.html
@@ -0,0 +1,180 @@
+
+PagesManager
+
+- NAME
+- PagesManager
+ - Pages manager widget
+
+
+- CREATION
+- PagesManager pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName add
+ page
+
+- pathName cget
+ option
+
+- pathName compute_size
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName delete
+ page
+
+- pathName getframe
+ page
+
+- pathName page
+ first
+ ?last?
+
+- pathName pages
+ ?first?
+ ?last?
+
+- pathName raise
+ ?page?
+
+
+
+DESCRIPTION
+
+
+PagesManager widget manages a set of pages and displays one of them.
+PagesManager does not provide any user access method, as NoteBook
+does, so it can be done through a listbox, a menu, radiobutton, or
+whatever. The widget shows no pages during creation; there must be an
+explicit call to raise to display one.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -height
+-
+
+Specifies the desired height for the pages. If this option is equal to zero (the default)
+then the window will not request any size at all.
+In this case, user may want to call PagesManager::compute_size to make PagesManager
+larger enough to contains the largest page.
+
+
+- -width
+-
+
+Specifies the desired width for the pages. If this option is equal to zero (the default)
+then the window will not request any size at all.
+In this case, user may want to call PagesManager::compute_size to make PagesManager
+larger enough to contains the largest page.
+
+
+
+WIDGET COMMAND
+- pathName add
+ page
+
-
+
+Add a new page identified by page, which is an arbitrary
+identifier. The pathname of the new page is returned and widgets for
+the page should be created with this as the parent or ancestor.
+However, PagesManager manages its own geometry. pack,
+grid or an equivalent should not be used with the pathname
+returned by add.
+
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName compute_size
+
-
+
+This command can be called to make the PagesManager large enough to contain the largest page.
+
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName delete
+ page
+
-
+
+Deletes the page page.
+
+
+- pathName getframe
+ page
+
-
+
+Returns the pathname of the page page.
+
+
+- pathName page
+ first
+ ?last?
+
-
+
+Its use is deprecated. Use pages instead.
+If last is omitted, returns the page at index first, or an empty string if
+first refers to a non-existent element. If last is specified, the command
+returns a list whose elements are all of the pages between first and last,
+inclusive. Both first and last may have any of the standard
+forms for indices.
+
+
+- pathName pages
+ ?first?
+ ?last?
+
-
+
+If first and last are omitted, returns the list of all pages.
+If first is specified and last omitted, returns the page at index
+first, or an empty string if first refers to a non-existent element.
+If first and last are specified, the command returns a list whose elements
+are all of the pages between first and last,
+inclusive. Both first and last may have any of the standard
+forms for indices.
+
+
+- pathName raise
+ ?page?
+
-
+
+Raise the page page, or return the raised page if page is omitted.
+
+
+
diff --git a/lib/bwidget/BWman/PanedWindow.html b/lib/bwidget/BWman/PanedWindow.html
new file mode 100644
index 0000000..c74c818
--- /dev/null
+++ b/lib/bwidget/BWman/PanedWindow.html
@@ -0,0 +1,158 @@
+
+PanedWindow
+
+- NAME
+- PanedWindow
+ - Tiled layout manager widget
+
+
+- CREATION
+- PanedWindow pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName add
+ ?option value...?
+
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName getframe
+ index
+
+
+
+DESCRIPTION
+
+
+PanedWindow is a widget that lays out children in
+a vertically or horizontally tiled format.
+The user can adjust the size of the panes, with a pane control sash created
+between children.
+
+
+WIDGET-SPECIFIC OPTIONS
+- -activator (read-only)
+-
+
+By default, the control sash is either a button or a line depending
+upon the underlying operating system. This sash may be explicitly set
+using this option. If set to line then the sash consists of
+just a dividing line. Otherwise if set to button then it
+constists of a knob that can be dragged.
+
+
+
+- -pad (read-only)
+-
+
+Specifies additional space between the button of the sash and children.
+
+
+
+- -side (read-only)
+-
+
+Specifies the side of the sash, which implies the layout: top or bottom
+(horizontal layout), left or right (vertical layout).
+
+
+- -weights (read-only)
+-
+
+Specifies how the weights specified when adding panes should be used. Must be
+extra or available. When using extra, only extra space is
+devided among the diffferent panes relative to their weight. When using
+available, all space is devided among the diffferent panes relative to
+their weight. Default value for weights is extra.
+
+
+
+- -width (read-only)
+-
+
+Specifies the width of the button of the sash. This option is ignored
+if the activator is set to line.
+
+
+
+
+WIDGET COMMAND
+- pathName add
+ ?option value...?
+
-
+
+This command add a new pane. The new pane is placed below the previous pane for
+vertical layout or at right for horizontal layout. This command returns a frame
+where user can place its widget. Valid options are:
+
+
- -minsize
+-
+
+Specifies the minimum size requested for the pane.
+See the grid command for more information.
+
+
+- -weight
+-
+
+Specifies the relative weight for apportioning any extra spaces among panes.
+See the grid command for more information.
+
+
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName getframe
+ index
+
-
+
+Returns the pathname of the indexth added pane.
+
+
diff --git a/lib/bwidget/BWman/PanelFrame.html b/lib/bwidget/BWman/PanelFrame.html
new file mode 100644
index 0000000..2d5ccdf
--- /dev/null
+++ b/lib/bwidget/BWman/PanelFrame.html
@@ -0,0 +1,153 @@
+
+PanelFrame
+
+- NAME
+- PanelFrame
+ - Frame with a boxed title area
+
+
+- CREATION
+- PanelFrame pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+
+
+DESCRIPTION
+
+
+PanelFrame creates a frame area with a boxed title area. The boxed title
+area contains a label ands allows for other items to be placed in it. This
+can serve like a mini-toolbar.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -height
+-
+Specifies the desired height for the widget.
+
+- -ipad
+-
+The spacing to place around individual panel area items.
+
+- -panelbackground
+-
+The color for the panel area background.
+Defaults to the selection highlight background color.
+
+- -panelforeground
+-
+The color for the title text.
+Defaults to the selection highlight foreground color.
+
+- -width
+-
+Specifies the desired width for the widget.
+
+
+
+
+WIDGET COMMAND
+- pathName add widget
+ ?option value option value ...?
+
-
+Add a widget to the panel. Widgets are packed in.
+Possible options are:
+
+- -side
+- Side to place item on (defaults to right).
+- -fill
+- Whether to fill space (defaults to none).
+- -expand
+- Whether to expand space (defaults to 0).
+- -pad
+- Override of the widget's -ipad option for this item.
+
+
+
+- pathName cget
+ option
+
-
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no
+option is specified, returns a list describing all of the available
+options for pathName. If option is specified with no
+value, 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 option is specified). If one or more
+option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName delete
+widget ?widget ...?
+
-
+Delete a widget and associated state from the panel.
+
+- pathName getframe
+
-
+Get the frame widget for the status bar in which status bar items should be
+created.
+
+
+- pathName items
+
- List of items in the status bar.
+
+- pathName remove
+widget ?widget ...?
+
-
+Remove a widget item and associated state from the panel without destroying
+the item.
+
+
+
diff --git a/lib/bwidget/BWman/PasswdDlg.html b/lib/bwidget/BWman/PasswdDlg.html
new file mode 100644
index 0000000..3511c8e
--- /dev/null
+++ b/lib/bwidget/BWman/PasswdDlg.html
@@ -0,0 +1,214 @@
+
+PasswdDlg
+
+- NAME
+- PasswdDlg
+ - Login/Password dialog box
+
+
+- CREATION
+- PasswdDlg pathName ?option value...?
+
+
+- OPTIONS from Dialog
+
+
+ -anchor |
+ -background or -bg |
+
+
+ -homogeneous |
+ -modal |
+
+
+ -padx |
+ -pady |
+
+
+ -parent |
+ -spacing |
+
+
+ -title |
+
+
+
+- OPTIONS from LabelEntry
+
+
+ -background or -bg |
+ -borderwidth or -bd |
+
+
+ -disabledforeground |
+ -entrybg |
+
+
+ -entryfg |
+ -exportselection |
+
+
+ -font |
+ -foreground or -fg |
+
+
+ -helptype |
+ -highlightbackground |
+
+
+ -highlightcolor |
+ -highlightthickness |
+
+
+ -insertbackground |
+ -insertborderwidth |
+
+
+ -insertofftime |
+ -insertontime |
+
+
+ -insertwidth |
+ -labelanchor |
+
+
+ -labelfont |
+ -labelheight |
+
+
+ -labeljustify |
+ -labelwidth |
+
+
+ -loginhelptext (see -helptext) |
+ -loginhelpvar (see -helpvar) |
+
+
+ -loginlabel (see -label) |
+ -logintext (see -text) |
+
+
+ -logintextvariable (see -textvariable) |
+ -loginunderline (see -underline) |
+
+
+ -passwdeditable (see -editable) |
+ -passwdhelptext (see -helptext) |
+
+
+ -passwdhelpvar (see -helpvar) |
+ -passwdlabel (see -label) |
+
+
+ -passwdstate (see -state) |
+ -passwdtext (see -text) |
+
+
+ -passwdtextvariable (see -textvariable) |
+ -passwdunderline (see -underline) |
+
+
+ -relief |
+ -selectbackground |
+
+
+ -selectborderwidth |
+ -selectforeground |
+
+
+ -wraplength |
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+
+
+DESCRIPTION
+
+
+PasswdDlg provides a simple way to display a login/password dialog.
+PasswdDlg::create creates the dialog, displays it, and return the value of login
+and password in a list, or an empty list if it is destroyed or user press cancel.
+When returning, the dialog no longer exists.
+
Additionnal resources can be set to modify other text:
+
+ *loginName Label for login LabelEntry
+ *passwordName Label for password LabelEntry
+
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -command
+-
+
+Specifies a command to call when user press ok button.
+
+
+
+- -type
+-
+
+Specifies a set of buttons to be displayed. The following values are possible:
+
-
+
+
+-
+ok
+
-
+Displays one button whose symbolic name is ok.
+
-
+okcancel
+
-
+Displays two buttons whose symbolic names are ok and cancel.
+
+
+
+
+
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+
+
+Stephane Lavirotte (Stephane.Lavirotte@sophia.inria.fr)
+
+
diff --git a/lib/bwidget/BWman/ProgressBar.html b/lib/bwidget/BWman/ProgressBar.html
new file mode 100644
index 0000000..649ebac
--- /dev/null
+++ b/lib/bwidget/BWman/ProgressBar.html
@@ -0,0 +1,152 @@
+
+ProgressBar
+
+- NAME
+- ProgressBar
+ - Progress indicator widget
+
+
+- CREATION
+- ProgressBar pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+
+
+DESCRIPTION
+
+
+ProgressBar widget indicates the user the progress of a lengthly operation.
+It is used by MainFrame
+and ProgressDlg.
+
+
+WIDGET-SPECIFIC OPTIONS
+- -height
+-
+
+Specifies the desired height for the progress indicator.
+
+
+- -maximum
+-
+
+Specifies the maximum value of the variable. This value must be
+greater than zero.
+
+
+
+- -type
+-
+
+Specifies the type of the ProgressBar. Must be one of normal,
+incremental, infinite or nonincremental_infinite.
+
+
If type is normal, the progress indicator is drawn
+proportional to the variable value and maximum option each time the
+variable is set.
+
+
If type is incremental, the value of the progress
+indicator is maintained internally, and incremented each time the variable is
+set by its value. The progress indicator is drawn proportional to the internal
+value and
+maximum option.
+
+
If type is infinite, the value of the progress indicator
+is maintained internally, and incremented each time the variable is set by its
+value. The progress indicator moves from left to right if internal value
+(modulo maximum) is less than maximum/2, and from right to left
+if internal value is greater than maximum/2.
+
+
If type is nonincremental_infinite, the value of the
+progress indicator taken from the variable value, The progress indicator moves
+from left to right if variable value (modulo maximum) is less than
+maximum/2, and from right to left if internal value is greater than
+maximum/2.
+
+
See -variable option for special case of its value,
+
+
Default value for type is normal.
+
+
+
+- -variable
+-
+
+Specifies the variable attached to the progress indicator. Progress indicator
+is updated when the value of the variable changes. If the value of the
+variable is negative, the progress indicator is not displayed (it is drawn flat
+with background color - usefull for ProgressDlg to make it
+invisible). If its value 0, progress indicator is reinitialized.
+
+
+
+- -width
+-
+
+Specifies the desired width for the progress indicator.
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+
diff --git a/lib/bwidget/BWman/ProgressDlg.html b/lib/bwidget/BWman/ProgressDlg.html
new file mode 100644
index 0000000..77cca98
--- /dev/null
+++ b/lib/bwidget/BWman/ProgressDlg.html
@@ -0,0 +1,145 @@
+
+ProgressDlg
+
+- NAME
+- ProgressDlg
+ - Progress indicator dialog box
+
+
+- CREATION
+- ProgressDlg pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- OPTIONS from Dialog
+
+
+ -background or -bg |
+ -parent |
+
+
+ -separator |
+ -title |
+
+
+
+
+- OPTIONS from ProgressBar
+
+
+ -background or -bg |
+ -borderwidth or -bd |
+
+
+ -foreground or -fg |
+ -maximum |
+
+
+ -relief |
+ -troughcolor |
+
+
+ -type |
+ -variable |
+
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+
+
+DESCRIPTION
+
+
+ProgressDlg provides a simple way to display a progress indicator dialog.
+ProgressDlg::create creates the dialog, displays it, set a local
+grab to it and immediatly return. The dialog is updated by modifying the
+value of the variable of options -textvariable and -variable.
+You have to destroy the dialog after use.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -command
+-
+
+Specifies a command to call when user press stop button. Note that it
+is the program's responsibility to periodically call update so
+that button press events can be generated.
+
+
+
+- -height
+-
+
+Specifies a desired height for the label in lines of text.
+
+
+
+- -stop
+-
+
+Specifies the text of the button typically used to stop process. If empty, no button will
+be drawn. This can be a symbolic name.
+
+
+
+- -width
+-
+
+Specifies a desired width for the label in characters.
+
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+
diff --git a/lib/bwidget/BWman/ScrollView.html b/lib/bwidget/BWman/ScrollView.html
new file mode 100644
index 0000000..c94fc1e
--- /dev/null
+++ b/lib/bwidget/BWman/ScrollView.html
@@ -0,0 +1,130 @@
+
+ScrollView
+
+- NAME
+- ScrollView
+ - Display the visible area of a scrolled window
+
+
+- CREATION
+- ScrollView pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+
+
+DESCRIPTION
+
+
+ScrollView displays the visible area of a scrolled window within
+its scroll region.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -fill
+-
+
+Specifies the fill color of the rectangle.
+
+
+
+- -foreground
+-
+
+Specifies the color of the border of the rectangle.
+
+
+
+- -height
+-
+
+Specifies the desired height for the ScrollView.
+
+
+- -width
+-
+
+Specifies the desired width for the ScrollView.
+
+
+- -window
+-
+
+Specifies the window to view. This widget must have -xscrollcommand and
+-yscrollcommand options, and respond to xview and yview command.
+In order to make ScrollView working with other scrollbar, -xscrollcommand and
+-yscrollcommand options of the widget must be set before the widget is passed to
+the -window option of the ScrollView (for example, if the widget is handled by
+a ScrolledWindow, call setwidget before setting -window option).
+
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+
BINDINGS
+
+- If mouse button 1 is pressed and dragged over the ScrollView, the top left corner of
+the visible area of the scrolled window is moved proportionally to the mouse displacement.
+
+- If mouse button 3 is pressed over the ScrollView, the top left corner of the visible
+area is proportionally set to this point.
+
+
+
diff --git a/lib/bwidget/BWman/ScrollableFrame.html b/lib/bwidget/BWman/ScrollableFrame.html
new file mode 100644
index 0000000..f497183
--- /dev/null
+++ b/lib/bwidget/BWman/ScrollableFrame.html
@@ -0,0 +1,194 @@
+
+ScrollableFrame
+
+- NAME
+- ScrollableFrame
+ - Scrollable frame containing widget
+
+
+- CREATION
+- ScrollableFrame pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+Themed widget (Widget::theme true): Options -background and -bg are not available.
+Modify style TFrame property -background instead.
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName getframe
+
+- pathName see
+ widget
+ ?vert?
+ ?horz?
+
+- pathName xview
+ ?arg...?
+
+- pathName yview
+ ?arg...?
+
+
+
+DESCRIPTION
+
+
+ScrollableFrame widget containing widget.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -areaheight
+-
+
+Specifies the height for the scrollable area. If zero, then the height
+of the scrollable area is made just large enough to hold all its children.
+
+
+- -areawidth
+-
+
+Specifies the width for the scrollable area. If zero, then the width
+of the scrollable area window is made just large enough to hold all its children.
+
+
+- -constrainedheight
+-
+
+Specifies whether or not the scrollable area should have the same height of the
+scrolled window. If true, vertical scrollbar is not needed.
+
+
+
+- -constrainedwidth
+-
+
+Specifies whether or not the scrollable area should have the same width of the
+scrolled window. If true, horizontal scrollbar is not needed.
+
+
+
+- -height
+-
+
+Specifies the desired height for the window in pixels.
+
+
+
+- -width
+-
+
+Specifies the desired width for the window in pixels.
+
+
+
+- -xscrollincrement
+-
+
+See xscrollincrement option of canvas widget.
+
+
+
+- -yscrollincrement
+-
+
+See yscrollincrement option of canvas widget.
+
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName getframe
+
-
+
+Return the pathname of the scrolled frame where widget should be created.
+
+
+- pathName see
+ widget
+ ?vert?
+ ?horz?
+
-
+
+Arrange scrollable area to make widget visible in the window.
+vert and horz specify which part of widget must be preferably
+visible, in case where widget is too tall or too large to be entirely visible.
+vert must be top (the default) or bottom,
+and horz must be left (the default) or right.
+If vert or horz is not a valid value, area is not scrolled in this direction.
+
+
+- pathName xview
+ ?arg...?
+
-
+
+Standard command to enable horizontal scrolling of pathName.
+
+
+- pathName yview
+ ?arg...?
+
-
+
+Standard command to enable vertical scrolling of pathName.
+
+
+
diff --git a/lib/bwidget/BWman/ScrolledWindow.html b/lib/bwidget/BWman/ScrolledWindow.html
new file mode 100644
index 0000000..af81581
--- /dev/null
+++ b/lib/bwidget/BWman/ScrolledWindow.html
@@ -0,0 +1,160 @@
+
+ScrolledWindow
+
+- NAME
+- ScrolledWindow
+ - Generic scrolled widget
+
+
+- CREATION
+- ScrolledWindow pathName ?option value...?
+
+
+- STANDARD OPTIONS
+- Not themed
+
+- Themed
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName getframe
+
+- pathName setwidget
+ widget
+
+
+
+DESCRIPTION
+
+
+ScrolledWindow enables user to create easily a widget with its scrollbar.
+Scrollbars are created by ScrolledWindow and scroll commands are automatically associated to
+a scrollable widget with ScrolledWindow::setwidget.
+
+
+WIDGET-SPECIFIC OPTIONS
+- -auto
+-
+
+Specifies the desired auto managed scrollbar:
+
- none means scrollbar are always drawn
+
- horizontal means horizontal scrollbar is drawn as needed
+
- vertical means vertical scrollbar is drawn as needed
+
- both means horizontal and vertical scrollbars are drawn as needed (default value)
+
+
+- -ipad (read-only)
+-
+
+Padding in pixels between client widget and scrollbars.
+Default value: 1.
+
+
+- -managed (read-only)
+-
+
+If true, scrollbar are managed during creation, so their size are included in the requested size of the
+ScrolledWindow. If false, they are not.
+Default value: true.
+
+
+- -scrollbar
+-
+
+Specifies the desired scrollbar: none, horizontal, vertical
+or both (default value).
+
+
+- -sides (read-only)
+-
+
+Side of the scrollbars.
+Possible values are: ne, en, nw, wn, se (default value), es, sw, ws.
+
+
+- -size (read-only)
+-
+
+Size of the scrollbars in pixels.
+Use 0 for standard size (default value).
+This option has no effect if widget is themed.
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName getframe
+
-
+
+Return the pathname of the frame where the scrolled widget should be created. This command
+is no longer needed. You can directly create the scrolled widget as the child
+of pathName.
+
+- pathName setwidget
+ widget
+
-
+
+Associate widget to the the scrollbars. widget becomes
+managed by the ScrolledWindow. The user should not attempt to manage
+widget until it is no longer managed by the ScrolledWindow.
+widget must be a scrollable widget, i.e. have the options
+xscrollcommand/yscrollcommand and the command xview/yview,
+such as canvas or text.
+
+
diff --git a/lib/bwidget/BWman/SelectColor.html b/lib/bwidget/BWman/SelectColor.html
new file mode 100644
index 0000000..8badcac
--- /dev/null
+++ b/lib/bwidget/BWman/SelectColor.html
@@ -0,0 +1,164 @@
+
+SelectColor
+
+- NAME
+- SelectColor
+ - Color selection widget
+
+
+- CREATION
+- SelectColor pathName ?option value...?
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- SelectColor::dialog
+ pathName
+ ?option value ...?
+
+- SelectColor::menu
+ pathName
+ placement
+ ?option value ...?
+
+- SelectColor::setcolor
+ index
+ color
+
+
+
+DESCRIPTION
+
+
+SelectColor provides a simple way to select color. It can be displayed
+as a dialog box or as a menubutton.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -color
+-
+
+Specifies the color value of the widget.
+
+
+
+- -parent
+-
+
+Parent of the Dialog. Dialog is centered in its parent. If empty, it is centered in
+root window.
+
+
+- -placement
+-
+
+Where to place the popup color dialog when displaying it.
+Must be any of: at, center, left,
+right, above, or below. If -parent is specified,
+placement will be in relation to the parent widget.
+
+
+- -title
+-
+
+Title of the Dialog toplevel.
+
+
+
+- -type (read-only)
+-
+
+Specifies the type of the SelectColor widget. Must be dialog or
+popup.
If type option is dialog,
+SelectColor::create directly creates the dialog, displays it and
+return an empty string if cancel button is pressed or if dialog is destroyed,
+and the selected color if ok button is pressed. In all cases, dialog is
+destroyed.
If type option is popup,
+SelectColor::create creates a small, popup dialog with a small set of
+predefined colors and a button to activate a full color dialog.
+
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- SelectColor::dialog
+ pathName
+ ?option value ...?
+
-
+
+Creates a dialog for the user to select a custom color.
+
+
+
+- SelectColor::menu
+ pathName
+ placement
+ ?option value ...?
+
-
+
+Creates a small, popup dialog for the user to select from a predefined list
+of colors with an additional button to display a full color dialog.
+
+
+placement can be any of at, center, left,
+right, above, or below. If -parent is specified,
+placement will be in relation to the parent widget.
+
+
+
+
+
+- SelectColor::setcolor
+ index
+ color
+
-
+
+Set the value of user predefined color at index index to color.
+index must be between 0 and 10.
+
+
+
diff --git a/lib/bwidget/BWman/SelectFont.html b/lib/bwidget/BWman/SelectFont.html
new file mode 100644
index 0000000..49df196
--- /dev/null
+++ b/lib/bwidget/BWman/SelectFont.html
@@ -0,0 +1,152 @@
+
+SelectFont
+
+- NAME
+- SelectFont
+ - Font selection widget
+
+
+- CREATION
+- SelectFont pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- SelectFont::loadfont
+
+
+
+DESCRIPTION
+
+
+SelectFont provides a simple way to choose font. It can be displayed
+as a dialog box or as a toolbar.
+
Textual items in Dialog box uses -name options so they
+can be translated to any language. Symbolic name used are
+ok, cancel, font, size, style,
+bold, italic, underline and overstrike.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -command
+-
+
+Specifies a command to call when user select a new font when SelectFont type
+option is toolbar.
+
+
+
+- -initialcolor
+-
+
+If specified, add an additional button that lets the user pick a
+color. This option is ignored if type is toolbar.
+
+
+- -nosizes
+-
+
+If true, don't show the listbox containing valid font sizes. This
+option is ignored if type is toolbar.
+
+
+- -parent
+-
+
+Parent of the Dialog. Dialog is centered in its parent. If empty, it is centered in
+root window.
+
+
+- -sampletext
+-
+
+Specifies the text displayed in the preview area.
+
+
+
+- -title
+-
+
+Title of the Dialog toplevel.
+
+
+
+- -type
+-
+
+Specifies the type of the SelectFont widget. Must be dialog or toolbar.
+
If type option is dialog, SelectFont::create directly creates the
+dialog, displays it and return an empty string if cancel button is
+pressed or if dialog is destroyed, and the selected font (and color
+if initialcolor) if ok button is pressed. In all cases, dialog
+is destroyed.
+
If type option is toolbar, SelectFont::create returns the pathname
+of the widget created.
+
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- SelectFont::loadfont
+
-
+
+Load the font available in the system.
+
+
+
diff --git a/lib/bwidget/BWman/Separator.html b/lib/bwidget/BWman/Separator.html
new file mode 100644
index 0000000..c015e0a
--- /dev/null
+++ b/lib/bwidget/BWman/Separator.html
@@ -0,0 +1,77 @@
+
+Separator
+
+- NAME
+- Separator
+ - 3D separator widget
+
+
+- CREATION
+- Separator pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+
+
+DESCRIPTION
+
+
+Separator is a widget that display an horizontal or vertical 3-D line.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -relief
+-
+
+Specifies the relief of the Separator. Must be groove (the default) or ridge.
+
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+
diff --git a/lib/bwidget/BWman/SpinBox.html b/lib/bwidget/BWman/SpinBox.html
new file mode 100644
index 0000000..2c510dc
--- /dev/null
+++ b/lib/bwidget/BWman/SpinBox.html
@@ -0,0 +1,250 @@
+
+SpinBox
+
+- NAME
+- SpinBox
+ - SpinBox widget
+
+
+- CREATION
+- SpinBox pathName ?option value...?
+
+
+- OPTIONS from ArrowButton
+
+
+ -background or -bg |
+ -disabledforeground |
+
+
+ -foreground or -fg |
+ -repeatdelay |
+
+
+ -repeatinterval |
+ -state |
+
+
+
+
+- OPTIONS from Entry
+
+
+ -command |
+ -disabledforeground |
+
+
+ -dragenabled |
+ -dragendcmd |
+
+
+ -dragevent |
+ -draginitcmd |
+
+
+ -dragtype |
+ -dropcmd |
+
+
+ -dropenabled |
+ -dropovercmd |
+
+
+ -droptypes |
+ -editable |
+
+
+ -entrybg (see -background) |
+ -entryfg (see -foreground) |
+
+
+ -exportselection |
+ -font |
+
+
+ -helptext |
+ -helptype |
+
+
+ -helpvar |
+ -highlightbackground |
+
+
+ -highlightcolor |
+ -highlightthickness |
+
+
+ -insertbackground |
+ -insertborderwidth |
+
+
+ -insertofftime |
+ -insertontime |
+
+
+ -insertwidth |
+ -justify |
+
+
+ -selectbackground |
+ -selectborderwidth |
+
+
+ -selectforeground |
+ -show |
+
+
+ -state |
+ -takefocus |
+
+
+ -text |
+ -textvariable |
+
+
+ -width |
+ -xscrollcommand |
+
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName bind
+ ?arg...?
+
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName getvalue
+
+- pathName setvalue
+ index
+
+
+
+DESCRIPTION
+
+
+SpinBox widget enables the user to select a value among a list given by the values
+option or a set of values defined by a mininum, a maximum and an increment.
+Notice that range option defines a list of values, so getvalue and
+setvalue work with both values and range.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -modifycmd
+-
+
+Specifies a Tcl command called when the user modify the value of the SpinBox.
+
+
+- -range
+-
+
+Specifies a list of three intergers (or real) describing the minimum, maximum and increment
+of the SpinBox.
+
+
+- -values
+-
+
+Specifies the values accepted by the SpinBox. This option takes precedence over
+range option.
+
+
+
+WIDGET COMMAND
+- pathName bind
+ ?arg...?
+
-
+
+Set bindings on the entry widget.
+
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName getvalue
+
-
+
+Returns the index of the current text of the SpinBox in the list of values,
+or -1 if it doesn't match any value.
+
+
+- pathName setvalue
+ index
+
-
+
+Set the text of the SpinBox to the value indicated by index in the list of values.
+index may be specified in any of the following forms:
+
+
+-
+last
+
-
+Specifies the last element of the list of values.
+
- first
+
-
+Specifies the first element of the list of values.
+
-
+next
+
-
+Specifies the element following the current (ie returned by getvalue) in the list
+of values.
+
- previous
+
-
+Specifies the element preceding the current (ie returned by getvalue) in the list
+of values.
+
-
+@number
+
-
+Specifies the integer index in the list of values.
+
+
+
+
BINDINGS
+
+When Entry of the SpinBox has the input focus, it has the following bindings, in addition
+to the default Entry bindings:
+
+- Page up set the value of the SpinBox to the last value.
+
- Page down set the value of the SpinBox to the first value.
+
- Arrow up set the value of the SpinBox to the next value.
+
- Arrow down set the value of the SpinBox to the previous value.
+
+
+
diff --git a/lib/bwidget/BWman/StatusBar.html b/lib/bwidget/BWman/StatusBar.html
new file mode 100644
index 0000000..d5f0877
--- /dev/null
+++ b/lib/bwidget/BWman/StatusBar.html
@@ -0,0 +1,147 @@
+
+StatusBar
+
+- NAME
+- StatusBar
+ - status bar widget
+
+
+- CREATION
+- StatusBar pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+
+
+DESCRIPTION
+
+
+StatusBar widget is a simple container widget with a corner resize control,
+meant to be placed at the bottom of a toplevel dialog.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -height
+-
+Specifies the desired height for the widget.
+
+
+- -showresize
+-
+Specifies whether to show the corner resize control.
+
+
+- -pad
+-
+The spacing to place around the status bar.
+
+
+- -ipad
+-
+The spacing to place around individual status bar items.
+
+
+- -width
+-
+Specifies the desired width for the widget.
+
+
+
+
+WIDGET COMMAND
+- pathName add widget
+ ?option value option value ...?
+
-
+Add a widget to the status bar. Possible options are:
+
+- -weight
+- Weighting of this item for resizing (passed to grid).
+- -separator
+- Whether to use a separator for this item.
+- -sticky
+- Passed on to grid.
+- -pad
+- Override of the widget's -ipad option for this item.
+
+
+
+- pathName cget
+ option
+
-
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no
+option is specified, returns a list describing all of the available
+options for pathName. If option is specified with no
+value, 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 option is specified). If one or more
+option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName delete
+widget ?widget ...?
+
-
+Delete a widget and associated state from the status bar.
+
+- pathName getframe
+
-
+Get the frame widget for the status bar in which status bar items should be
+created.
+
+
+- pathName items
+
- List of items in the status bar.
+
+
+
diff --git a/lib/bwidget/BWman/TitleFrame.html b/lib/bwidget/BWman/TitleFrame.html
new file mode 100644
index 0000000..c1b8261
--- /dev/null
+++ b/lib/bwidget/BWman/TitleFrame.html
@@ -0,0 +1,107 @@
+
+TitleFrame
+
+- NAME
+- TitleFrame
+ - Frame with a title
+
+
+- CREATION
+- TitleFrame pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+- WIDGET COMMAND
+- pathName cget
+ option
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName getframe
+
+
+
+DESCRIPTION
+
+
+TitleFrame enables user to create a frame with a title like XmFrame Motif widget.
+
+
+WIDGET-SPECIFIC OPTIONS
+- -baseline
+-
+
+Specifies the vertical alignment of the title: top, center or bottom.
+
+
+- -ipad
+-
+
+Specifies a pad between the border of the frame and the user frame.
+The value is in screen units.
+
+
+- -side
+-
+
+Specifies the horizontal alignment of the title: left, center or right.
+
+
+
+WIDGET COMMAND
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is specified,
+returns a list describing all of the available options for pathName.
+If option is specified with no value, 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 option is specified). If one or
+more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName getframe
+
-
+
+Return the frame where the user can create any other widget.
+
+
diff --git a/lib/bwidget/BWman/Tree.html b/lib/bwidget/BWman/Tree.html
new file mode 100644
index 0000000..7b547ed
--- /dev/null
+++ b/lib/bwidget/BWman/Tree.html
@@ -0,0 +1,937 @@
+
+Tree
+
+- NAME
+- Tree
+ - Tree widget
+
+
+- CREATION
+- Tree pathName ?option value...?
+
+
+- STANDARD OPTIONS
+
+
+
+- WIDGET-SPECIFIC OPTIONS
+
+
+
+
+- WIDGET COMMAND
+- pathName bindArea
+ event
+ script
+
+- pathName bindImage
+ event
+ script
+
+- pathName bindText
+ event
+ script
+
+- pathName cget
+ option
+
+- pathName closetree
+ node
+
+- pathName configure
+ ?option? ?value option value ...?
+
+- pathName delete
+ ?arg...?
+
+- pathName edit
+ node
+ text
+ ?verifycmd?
+ ?clickres?
+ ?select?
+
+- pathName exists
+ node
+
+- pathName find
+ findinfo
+ ?confine?
+
+- pathName index
+ node
+
+- pathName insert
+ index
+ parent
+ node
+ ?option value...?
+
+- pathName itemcget
+ node
+ option
+
+- pathName itemconfigure
+ node
+ ?option? ?value option value ...?
+
+- pathName line
+ node
+
+- pathName move
+ parent
+ node
+ index
+
+- pathName nodes
+ node
+ ?first?
+ ?last?
+
+- pathName opentree
+ node
+
+- pathName parent
+ node
+
+- pathName reorder
+ node
+ neworder
+
+- pathName see
+ node
+
+- pathName selection
+ cmd
+ ?arg...?
+
+- pathName toggle
+ node
+
+- pathName visible
+ node
+
+- pathName xview
+ ?arg...?
+
+- pathName yview
+ ?arg...?
+
+
+
+DESCRIPTION
+
+
+Tree widget uses canvas to display a hierarchical list of items (called nodes).
+Each node is composed of a label with its own font and foreground attributes, and an optional
+image or window. Each node can have a list of subnodes, which can be collapsed or expanded.
+Each node is drawn in a single line, whose height is defined by the
+deltay option, so they must have at most this height.
+A node is uniquely identified by a string given at creation (by the
+insert command). The node named root is the root of
+the tree and is not drawn.
+The tree structure is directly maintained by the widget.
+
+
+
+WIDGET-SPECIFIC OPTIONS
+- -closecmd
+-
+
+Specifies a command to be called when user close a node. The
+closed node is appended to the command.
+
+
+
+
+
+ - -crossfill
+ -
+ Specifies a foreground color for the cross bitmap.
+
+
+
+- -crossclosebitmap
+-
+ Specifies a bitmap to be displayed in place of the standard cross
+ when a node is closed.
+
+
+
+- -crosscloseimage
+-
+ Specifies an image to be displayed in place of the standard cross
+ when a node is closed. Overrides the -crossclosebitmap option.
+
+
+
+- -crossopenbitmap
+-
+ Specifies a bitmap to be displayed in place of the standard cross
+ when a node is open.
+
+
+
+- -crossopenimage
+-
+ Specifies an image to be displayed in place of the standard cross
+ when a node is open. Overrides the -crossopenbitmap option.
+
+
+
+- -deltax
+-
+
+Specifies horizontal indentation between a node and its children.
+
+
+
+- -deltay
+-
+
+Specifies vertical size of the nodes.
+
+
+
+- -dragenabled
+-
+A boolean specifying if drag is enabled.
+
+
+- -dragendcmd
+-
+
+Specifies a command to be called when drag ended.
+dragendcmd must be a command conforming to the description of the
+option dragendcmd of DragSite::register.
+
+
+
+- -dragevent
+-
+
+Specifies the number of the mouse button associated to the drag.
+Must be 1, 2 or 3.
+
+
+
+- -draginitcmd
+-
+
+Tree has a command wrapper for drag-init events. This command refused the drag
+if no node is designated. In other cases:
+
If draginitcmd is empty, it returns:
+
+- the value of option dragtype or TREE_NODE if empty as the data type,
+
- {copy move link} as the operations,
+
- the node identifier as the data.
+
+If draginitcmd is not empty, it is called with the following arguments:
+
+- the pathname of the tree,
+
- the identifier of the dragged node,
+
- the toplevel created to represent dragged data.
+
+and must return a value conforming to draginitcmd option described in
+DragSite::register.
+
+
+
+- -dragtype
+-
+
+Specifies an alternate type of dragged object.
+
+
+
+- -dropcmd
+-
+
+Tree has a command wrapper for drop events. This command stops auto scrolling
+and extract node and position.
+
If dropcmd is not empty, it is called with the following arguments:
+
+- the pathname of the tree,
+
- the pathname of the drag source,
+
- a list describing where the drop occurs. It can be:
+
+- {widget},
+
- {node node} or
+
- {position node index}.
+
+ - the current operation,
+
- the data type,
+
- the data.
+
+
+
+
+
+- -dropenabled
+-
+A boolean specifying if drop is enabled.
+
+
+- -dropovercmd
+-
+
+Tree has a command wrapper for drag-over events. This command enables auto scrolling
+and position extraction during the drag-over.
+If dropovercmd is not empty, the command is called with the following aguments:
+
+- the pathname of the tree,
+
- the pathname of the drag source,
+
- a list describing where the drop can occur, whose elements are:
+
+- the string widget if dropovertype option contains w, else empty string.
+
- the targeted node if drag icon points a node and dropovertype option contains n, else empty string.
+
- a list containing a node and the position within the children of the node where drag
+icon points to if dropovertype option contains p, else empty string.
+
- optionally, the preferred method if drop can occur both inside a node and between two
+nodes. The value is position or node.
+
+ - the current operation,
+
- the data type,
+
- the data.
+
+The command must return a list with two elements:
+
+- the drop status, conforming to those described in dropovercmd option of
+DropSite::register,
+
- the choosen method: widget, node or position.
+
+
+
+
+- -dropovermode
+-
+
+Specifies the type of drop-over interaction. Must be a combination of
+w, which specifies that drop can occurs everywhere on widget,
+p, which specifies that drop can occurs between two nodes,
+and n, which specifies that drop occurs inside nodes.
+
+
+
+- -droptypes
+-
+
+Specifies a list of accepted dropped object/operation.
+See option droptypes of
+DropSite::register.
+for more infromation.
+
+
Default is TREE_NODE with operations copy and move.
+
+
+
+- -height
+-
+
+Specifies the desired height for the tree in units of deltay pixels.
+
+
+
+- -linesfill
+-
+
+Specifies a foreground color for the lines between nodes.
+
+
+
+- -linestipple
+-
+
+Specifies a stipple bitmap for the lines between nodes.
+
+
+
+- -opencmd
+-
+
+Specifies a command to be called when the user opens a node. The name
+of the opened node is appended to the command.
+
+
+
+- -padx
+-
+
+Specifies distance between image or window and text of the nodes.
+
+
+
+- -redraw
+-
+
+Specifies wether or not the tree should be redrawn when entering idle.
+Set it to false if you call update while modifying the tree.
+
+
+
+- -selectcommand
+-
+
+Specifies a command to be called when the selection is changed. The
+path of the tree widget and the selected nodes are appended to the
+command.
+
+
+
+
+- -selectfill
+-
+ If true, the selection box will be drawn across the entire tree from
+ left-to-right instead of just around the item text.
+
+
+
+- -showlines
+-
+
+Specifies whether or not lines should be drawn between nodes.
+
+
+
+- -width
+-
+
+Specifies the desired width for the tree in units of 8 pixels.
+
+
+
+
+
+NODE NAMES
+
+Certain special characters in node names are automatically substituted
+by the tree during operation. These characters are & | ^ !.
+They are all substituted with a _ character. This is only to
+avoid errors because the characters are special to the tree widget.
+
+
+WIDGET COMMAND
+- pathName bindArea
+ event
+ script
+
-
+
+This command associates a command to execute whenever the event
+sequence given by event occurs anywhere within the Tree area.
+
+- pathName bindImage
+ event
+ script
+
-
+
+This command associates a command to execute whenever the event
+sequence given by event occurs on the image of a node.
+The node idenfier on which the event occurs is appended to the command and may be used to manipulate the tree (e.g. don't use %W).
+
+
+If -selectfill is given, an eventual binding of the background box by bindText is overwritten.
+
+
+- pathName bindText
+ event
+ script
+
-
+
+This command associates a command to execute whenever the event
+sequence given by event occurs on the label of a node.
+The node idenfier on which the event occurs is appended to the command and may be used to manipulate the tree (e.g. don't use %W).
+
+
+If -selectfill is given, an eventual binding of the background box by bindImage is overwritten.
+
+
+- pathName cget
+ option
+
-
+
+Returns the current value of the configuration option given by option.
+Option may have any of the values accepted by the creation command.
+
+- pathName closetree node
+?recurse?
+
-
+
+This command close all the subtree given by node. Recurse
+through the tree starting at node and set open option to 0
+depending on recurse. Default value of recurse is true.
+
+
+- pathName configure
+ ?option? ?value option value ...?
+
-
+
+Query or modify the configuration options of the widget. If no option is
+specified, returns a list describing all of the available options for
+pathName. If option is specified with no value, 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
+option is specified). If one or more option-value 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.
+Option may have any of the values accepted by the creation command.
+Read-only options are not be modified.
+
+
+- pathName delete
+ ?arg...?
+
-
+
+Deletes all nodes (and children of them) in arg. arg can be a list
+of nodes or a list of list of nodes.
+To delete all the tree, do $pathName delete [$pathName nodes root].
+
+
+- pathName edit
+ node
+ text
+ ?verifycmd?
+ ?clickres?
+ ?select?
+
-
+
+Provides a way for the user to edit in place the label of a node. This is
+possible only if node is visible (all its parents are open).
+
The command takes the initial text as argument and does not modify the label of the
+edited node, but returns an empty string if edition is canceled, or the typed text
+if edition is accepted.
+
When editing, the user can cancel by pressing Escape, or accept by pressing Return.
+
clickres specifies what to do if the user click outside the editable area.
+If clickres is 0 (the default), the edition is canceled.
+If clickres is 1, the edition is accepted.
+In all other case, the edition continues.
+
If edition is accepted and modifycmd is not empty, then it is called with
+the new text as argument and must return 1 to accept the new text, 0 to refuse it
+and continue edition.
+
select specifies wether or not the initial text should be selected. Default is 1.
+
+
+- pathName exists
+ node
+
-
+
+Returns whether or not node exists in the tree.
+
+
+- pathName find
+ findinfo
+ ?confine?
+
-
+
+
+Returns the node given by the position findinfo.
+findinfo can take the form of a pixel position @x,y or
+of the line number of a currently visible Tree node. The first line
+of the Tree has the value of zero.
+
+
+
+If confine is non-empty, then confine findinfo to only
+match pixel positions for the area consumed by Tree labels, not just
+anywhere on their lines. (confine has no effect if
+findinfo is a line number.)
+
+
+
+- pathName index
+ node
+
-
+
+Returns the position of node in its parent.
+
+
+- pathName insert
+ index
+ parent
+ node
+ ?option value...?
+
-
+
+
+Inserts a new node identified by node in the children list of
+parent at position index.
+
+
+
+Any instance of #auto within the node name will be replaced by the
+number of the item in the order of insertion. The non-printable characters
+\1 to \5 are reserved for internal use and should not be present in node
+names.
+
+
+
+
+
- -anchor
+-
+ Specifies the anchor of the image or window of the node. Defaults to w.
+
+
+
+- -data
+-
+
+User data associated to the node.
+
+
+
+- -deltax
+-
+
+Specifies the horizontal indentation of the node. If the value is -1, the
+node will be drawn with the deltax for the entire tree.
+
+
+
+- -drawcross
+-
+
+Specifies how the cross used to expand or collapse the children of a node
+should be drawn.
+Must be one of auto, always or never.
+
If auto, the cross is drawn only if the node has children.
+If always, the cross is always drawn.
+If never, the cross is never drawn.
+To maintain compatibility with older versions of this widget,
+allways is a deprecated synonym to always.
+
+
+
+- -fill
+-
+
+Specifies the foreground color of the label of the node.
+
+
+
+- -font
+-
+
+Specifies a font for the label of the node.
+
+
+
+- -helpcmd
+-
+
+If specified, refers to a command to execute to get the help text to display.
+The command must return a string to display.
+If the command returns an empty string, no help is displayed.
+See also DynamicHelp.
+
+
+- -helptext
+-
+
+Text for dynamic help.
+See also DynamicHelp.
+
+
+- -helptype
+-
+Type of dynamic help. Use balloon or variable.
+See also DynamicHelp.
+
+
+- -helpvar
+-
+Variable to use when helptype option is variable.
+See also DynamicHelp.
+
+
+- -image
+-
+
+Specifies an image to display at the left of the label of the node.
+window option override image.
+
+
+- -open
+-
+
+Specifies wether or not the children of the node should be drawn.
+
+
+
+- -padx
+-
+
+Specifies the distance between image or window and the text of the node. If
+the value is -1, the node will be drawn with the padx for the entire tree.
+
+
+
+- -selectable
+-
+
+Specifies if the node can be selected or not.
+
+
+
+- -text
+-
+
+Specifies the label of the node.
+
+
+
+- -window
+-
+
+Specifies a pathname to display at the left of the label of the node.
+window option override image.
+
+
+
+- pathName itemcget
+ node
+ option
+
-
+
+Returns the current value of a configuration option for the item.
+Option may have any of the values accepted by the item creation command.
+
+
+- pathName itemconfigure
+ node
+ ?option? ?value option value ...?
+
-
+
+This command is similar to the configure command, except that it applies to the
+options for an individual item, whereas configure applies to the options for
+the widget as a whole. Options may have any of the values accepted by the
+item creation widget command. If options are specified, options are modified as indicated
+in the command and the command returns an empty string. If no options are specified,
+returns a list describing the current options for the item.
+Read-only options are not be modified.
+
+
+- pathName line
+ node
+
-
+
+
+Returns the line number where node was drawn. If the node is
+not visible then return -1. The first line of the tree has the value
+of 0.
+
+
+
+- pathName move
+ parent
+ node
+ index
+
-
+
+Moves node to the children list of parent at position index.
+parent can not be a descendant of node.
+
+
+- pathName nodes
+ node
+ ?first?
+ ?last?
+
-
+
+Returns parts of the children of node, following first and last.
+If first and last are omitted, returns the list of all children.
+If first is specified and last omitted, returns the child at index
+first, or an empty string if first refers to a non-existent element.
+If first and last are specified, the command returns a list whose elements
+are all of the children between first and last,
+inclusive. Both first and last may have any of the standard
+forms for indices.
+
+
+- pathName opentree node ?recurse?
+
+
-
+
+This command open all the subtree given by node. Recurse through the
+tree starting at node and set open option to 1 depending on value
+of recurse. Default value of recurse is true.
+
+
+- pathName parent
+ node
+
-
+
+Returns the parent of node.
+
+
+- pathName reorder
+ node
+ neworder
+
-
+
+Modifies the order of children of node given by neworder. Children of
+node that do not appear in neworder are no moved.
+
+
+- pathName see
+ node
+
-
+
+Arrange the scrolling area to make node visible.
+
+
+- pathName selection
+ cmd
+ ?arg...?
+
-
+
+Modifies the list of selected nodes following cmd:
+
+- add
+
- Adds all nodes in arg to the selection.
+
- clear
+
- Removes all nodes from the selection.
+
- get
+
- Returns a list containing the indices of current selected nodes.
+
- includes
+
- Tests if the specified node is selected. Returns true if the answer is yes, and false else.
+
- range
+
- Sets the selection to all nodes between the two specified ones.
+
- remove
+
- Removes all nodes in arg from the selection.
+
- set
+
- Sets the selection to all nodes in arg.
+
- toggle
+
- Toggles the selection status of all nodes in arg.
+
+
+The subcommands add, range, and set silently
+ignore nodes which are declared unselectable. See the node option
+-selectable to influence this.
+
+
+
+
+
+- pathName toggle
+ node
+
-
+ Toggle the open/close status of the given node.
+
+
+- pathName visible
+ node
+
-
+
+Returns whether or not node is visible (all its parents are open).
+
+
+- pathName xview
+ ?arg...?
+
-
+
+Standard command to enable horizontal scrolling of pathName.
+
+
+- pathName yview
+ ?arg...?
+
-
+
+Standard command to enable vertical scrolling of pathName.
+
+
+
+BINDINGS
+
+
+A <<TreeSelect>> virtual event is generated any time the
+selection in the tree changes. This is the default behavior of an
+item in the tree, but it can be overridden with the bindText or
+bindImage command. If the button 1 binding is overridden, this event may
+not be generated.
+
+
+
+The tree has all the standard mouse wheel bindings when it has focus.
+
+
+
diff --git a/lib/bwidget/BWman/Widget.html b/lib/bwidget/BWman/Widget.html
new file mode 100644
index 0000000..c0560e8
--- /dev/null
+++ b/lib/bwidget/BWman/Widget.html
@@ -0,0 +1,502 @@
+
+Widget
+
+
Under construction ...
+- NAME
+- Widget
+ - The Widget base class
+
+
+- COMMAND
+- Widget::addmap
+ class
+ subclass
+ subpath
+ options
+
+- Widget::bwinclude
+ class
+ subclass
+ subpath
+ ?arg...?
+
+- Widget::cget
+ path
+ option
+
+- Widget::configure
+ path
+ options
+
+- Widget::create
+ class
+ path
+ ?rename?
+
+- Widget::declare
+ class
+ optlist
+
+- Widget::define
+ class
+ filename
+ ?class ...?
+
+- Widget::destroy
+ path
+
+- Widget::focusNext
+ w
+
+- Widget::focusOK
+ w
+
+- Widget::focusPrev
+ w
+
+- Widget::generate-doc
+ dir
+ widgetlist
+
+- Widget::generate-widget-doc
+ class
+ iscmd
+ file
+
+- Widget::getoption
+ path
+ option
+
+- Widget::getVariable
+ path
+ varName
+ ?myVarName?
+
+- Widget::hasChanged
+ path
+ option
+ pvalue
+
+- Widget::init
+ class
+ path
+ options
+
+- Widget::setoption
+ path
+ option
+ value
+
+- Widget::subcget
+ path
+ subwidget
+
+- Widget::syncoptions
+ class
+ subclass
+ subpath
+ options
+
+- Widget::tkinclude
+ class
+ tkwidget
+ subpath
+ ?arg...?
+
+
+
+DESCRIPTION
+
+
+The Widget namespace handle data associated to all BWidget and provide commands
+to easily define BWidget.
+
For commands can be used to define a BWidget:
+tkinclude, bwinclude, declare, addmap and syncoptions.
+Here is the definition of ComboBox widget:
+
+
+
+
+namespace eval ComboBox {
+ # We're using ArrowButton, Entry and LabelFrame
+ ArrowButton::use
+ Entry::use
+ LabelFrame::use
+
+ # Include resources of LabelFrame
+ Widget::bwinclude ComboBox LabelFrame .labf \
+ rename {-text -label} \
+ remove {-focus} \
+ prefix {label -justify -width -anchor -height -font} \
+ initialize {-relief sunken -borderwidth 2}
+
+ # Include resources of Entry
+ Widget::bwinclude ComboBox Entry .e \
+ remove {-relief -bd -borderwidth -bg -fg} \
+ rename {-foreground -entryfg -background -entrybg}
+
+ # Declare new resources
+ Widget::declare ComboBox {
+ {-height TkResource 0 0 listbox}
+ {-values String "" 0}
+ {-modifycmd String "" 0}
+ {-postcommand String "" 0}
+ }
+
+ # Map resources to subwidget
+ Widget::addmap ComboBox "" :cmd {-background {}}
+ Widget::addmap ComboBox ArrowButton .a \
+ {-foreground {} -background {} -disabledforeground {} -state {}}
+
+ # Synchronize subwidget options
+ Widget::syncoptions ComboBox Entry .e {-text {}}
+ Widget::syncoptions ComboBox LabelFrame .labf {-label -text -underline {}}
+
+ proc use {} {}
+}
+ |
+
+
+
+
+COMMAND
+- Widget::addmap
+ class
+ subclass
+ subpath
+ options
+
-
+
+This command map some resources to subwidget.
+Mapped resources automatically configure subwidget when widget is configured.
+
+- class is the class of the new BWidget
+
- subclass is the class the subwidget (BWidget class, e.g Entry, or empty for Tk widget)
+
- subpath is the path of the subwidget
+
- options is the list {option realres ...} of options to map to subwidget
+
+
+- Widget::bwinclude
+ class
+ subclass
+ subpath
+ ?arg...?
+
-
+
+This command includes into a new BWidget the resources of another BWidget.
+Arguments are:
+
+- class class of the new widget
+
- subclass class name of the BWidget to be included
+
- subpath path of the widget to configure when BWidget is configured
+
- options is:
+
+- include {option option ...}
+
list of options to include (all if not defined)
+ - remove {option option ...}
+
list of options to remove
+ - rename {option name option name ...}
+
list of options to rename
+ - prefix {prefix option option ...}
+
pefix all option by prefix
+ - initialize {option value option value ...}
+
default value of options
+ - readonly {option value option value ...}
+
new readonly flag
+
+
+- Widget::cget
+ path
+ option
+
-
+
+Returns the value of option of BWidget path. cget tests the option
+existence and takes care of synchronization with subwidget.
+Typically called by the BWidget cget command.
+
+
+- Widget::configure
+ path
+ options
+
-
+Description text
+
+
+- Widget::create
+ class
+ path
+ ?rename?
+
-
+ The standard method for creating a BWidget. The real widget path
+ is renamed to $path:cmd, and a new proc is created to replace the
+ path which points to the BWidget's commands.
+
+
+ If rename is false, the path will not be renamed, but the
+ proc will still be created. This is useful when inheriting another
+ BWidget who will already have renamed the widget.
+
+
+
+ The command returns the widget path. This command is usually the
+ last command executed in the ::create command for the widget.
+
+
+
+- Widget::declare
+ class
+ optlist
+
-
+
+This command declare new resources for a BWidget.
+
+- class is class of the new widget
+
- options is the list describing new options. Each new option is a list
+{option type value ro ?args?} where:
+
+- option is the name of the option
+
- type is the type of the option
+
- value is the default value of the option
+
- ro is the readonly flag of the option
+
- args depends on type
+
+
+type can be:
+
+
+- TkResource
+-
+value of option denotes a resource of a Tk widget. args must be class or
+{class realoption}. class is the creation command of the Tk widget, e.g.
+entry.
+The second form must be used if option has not the same name in Tk widget,
+but realoption.
+
If value is empty, it is initialized to the default value of the Tk widget.
+
+
+- BwResource
+-
+value of option denotes a resource of a BWidget. args must be class or
+{class realoption}. class is the name of the namespace of the BWidget, e.g.
+LabelFrame.
+The second form must be used if option has not the same name in BWidget,
+but realoption.
+
If value is empty, it is initialized to the default value of the BWidget.
+
+
+- Int
+- value of option is an integer.
+args can be {?min? ?max?} to force it to be in a range. The test is
+[expr $option > $min] && [expr $option < $max] so
+if args is {0 10}, value must be beetween 0 and 10 exclude,
+if args is {=0 =10} , value must be beetween 0 and 10 include.
+
+
+- Boolean
+- value of option is a boolean. True values can be 1, true or yes.
+False values can be 0, false or no. Widget::cget always return
+0 or 1.
+
+
+- Enum
+-
+value of option is a element of a enumeration. args must be the list
+of enumeration, e.g. {top left bottom right}.
+
+
+- Flag
+-
+value of option is a combination of a set of chars. args must be a
+string defining the set.
+
+
+- String
+-
+
- value of option is any uncontrolled string.
+
+
+ - Synonym
+-
+
- option is a synonym of option args. value has no effect here.
+
+
+
+
+- Widget::define
+ class
+ filename
+ ?class ...?
+
-
+
+
+ This command is used to define a new BWidget class. It is
+ usually the first command executed in a new widget definition.
+
+
+
+ - class is the name of the new widget class.
+ - filename is the name of the file (without extension) in the
+ BWidget distribution that defines this class.
+
+
+
+ Each class defined after the filename is a class that this widget
+ depends on. The ::use command will be called for each of these
+ classes after the new widget has been defined.
+
+
+
+ This command does several things to setup the new class. First, it
+ creates an alias in the global namespace for the name of the class
+ that points to the class's ::create subcommand. Second, it defines
+ a ::use subcommand for the class which other classes can use to load
+ this class on the fly. Lastly, it creates a default binding to the
+ <Destroy> event for the class that calls Widget::destroy on
+ the path. This is the default setup for almost all widgets in the
+ BWidget package.
+
+
+
+
+- Widget::destroy
+ path
+
-
+Description text
+
+- Widget::focusNext
+ w
+
-
+Description text
+
+- Widget::focusOK
+ w
+
-
+Description text
+
+- Widget::focusPrev
+ w
+
-
+Description text
+
+- Widget::generate-doc
+ dir
+ widgetlist
+
-
+Description text
+
+- Widget::generate-widget-doc
+ class
+ iscmd
+ file
+
-
+Description text
+
+- Widget::getoption
+ path
+ option
+
-
+
+Returns the value of option of BWidget path. This command does not test
+option existence, does not handle synonym and does not take care of synchronization with
+subwidget.
+
+
+- Widget::getVariable
+ path
+ varName
+ ?myVarName?
+
-
+
+
+Make the variable varName relational to path accessible in
+the current procedure. The variable will be created in the widget namespace
+for path and can be used for storing widget-specific information.
+When path is destroyed, any variable accessed in this manner will be
+destroyed with it.
+
+
+
+If myVarName is specified, the variable will be accessible in the
+current procedure as that name.
+
+
+
+- Widget::hasChanged
+ path
+ option
+ pvalue
+
-
+Description text
+
+- Widget::init
+ class
+ path
+ options
+
-
+Description text
+
+- Widget::setoption
+ path
+ option
+ value
+
-
+
+Set the value of option of BWidget path without option test, subwidget mapping,
+synonym handling and does not set the modification flag.
+
+
+- Widget::subcget
+ path
+ subwidget
+
-
+
+Returns the list of all option/value of BWidget path that are mapped to subwidget.
+
+
+- Widget::syncoptions
+ class
+ subclass
+ subpath
+ options
+
-
+
+This command synchronize options value of a subwidget.
+Used when an option of a subwidget is modified out of the BWidget configure command.
+
+- class is the class of the new BWidget
+
- subclass is the class the subwidget (BWidget class, e.g Entry, or empty for Tk widget)
+
- subpath is the path of the subwidget
+
- options is the list {option realres ...} of options to synchronize
+with subwidget
+
+
+- Widget::tkinclude
+ class
+ tkwidget
+ subpath
+ ?arg...?
+
-
+
+This command includes into a new BWidget the resources of a Tk widget.
+Arguments are:
+
+- class class of the new widget
+
- tkwidger command name of the Tk widget to be included
+
- subpath path of the widget to configure when BWidget is configured
+
- options is:
+
+- include {option option ...}
+
list of options to include (all if not defined)
+ - remove {option option ...}
+
list of options to remove
+ - rename {option name option name ...}
+
list of options to rename
+ - prefix {prefix option option ...}
+
pefix all option by prefix
+ - initialize {option value option value ...}
+
default value of options
+ - readonly {option value option value ...}
+
new readonly flag
+
+
+
diff --git a/lib/bwidget/BWman/contents.html b/lib/bwidget/BWman/contents.html
new file mode 100644
index 0000000..0b9a49a
--- /dev/null
+++ b/lib/bwidget/BWman/contents.html
@@ -0,0 +1,95 @@
+
+
- Simple Widgets
+
+Label |
+Label widget with state option, dynamic help and drag and drop facilities |
+Entry |
+Entry widget with state option, dynamic help and drag and drop facilities |
+Button |
+Button widget with enhanced options |
+ArrowButton |
+Button widget with an arrow shape. |
+ProgressBar |
+Progress indicator widget |
+ScrollView |
+Display the visible area of a scrolled window |
+Separator |
+3D separator widget |
+
+
- Manager Widgets
+
-
+
- Composite Widgets
+
-
+
- Commands Classes
+
-
+
+
+
Load BWidget
+
+Possible load sequence:
+
+# If package msgcat is available, its locale is used for BWidget
+package require msgcat
+# load BWidget
+package require BWidget
+
+
diff --git a/lib/bwidget/BWman/index.html b/lib/bwidget/BWman/index.html
new file mode 100644
index 0000000..e928fe2
--- /dev/null
+++ b/lib/bwidget/BWman/index.html
@@ -0,0 +1,7 @@
+
+BWidget Manual Pages
+
+
diff --git a/lib/bwidget/BWman/navtree.html b/lib/bwidget/BWman/navtree.html
new file mode 100644
index 0000000..7385394
--- /dev/null
+++ b/lib/bwidget/BWman/navtree.html
@@ -0,0 +1,41 @@
+
+Brief description
+Simple Widgets
+ Label
+ Entry
+ Button
+ ArrowButton
+ ProgressBar
+ ScrollView
+ Separator
+Manager Widgets
+ MainFrame
+ LabelFrame
+ TitleFrame
+ PanelFrame
+ ScrolledWindow
+ ScrollableFrame
+ PanedWindow
+ ButtonBox
+ PagesManager
+ NoteBook
+ Dialog
+ StatusBar
+Composite Widgets
+ LabelEntry
+ ComboBox
+ SpinBox
+ Tree
+ ListBox
+ MessageDlg
+ ProgressDlg
+ PasswdDlg
+ SelectFont
+ SelectColor
+Commands Classes
+ Widget
+ DynamicHelp
+ DragSite
+ DropSite
+ BWidget
+
diff --git a/lib/bwidget/BWman/options.htm b/lib/bwidget/BWman/options.htm
new file mode 100644
index 0000000..cc2605b
--- /dev/null
+++ b/lib/bwidget/BWman/options.htm
@@ -0,0 +1,458 @@
+Tk Built-In Commands - options manual page
+
+
+- NAME
+
- options - Standard options supported by widgets
+- DESCRIPTION
+
+- -activebackground, activeBackground, Foreground
+
- -activeborderwidth, activeBorderWidth, BorderWidth
+
- -activeforeground, activeForeground, Background
+
- -anchor, anchor, Anchor
+
- -background or -bg, background, Background
+
- -bitmap, bitmap, Bitmap
+
- -borderwidth or -bd, borderWidth, BorderWidth
+
- -cursor, cursor, Cursor
+
- -disabledbackground, disabledBackground, DisabledBackground
+
- -disabledforeground, disabledForeground, DisabledForeground
+
- -exportselection, exportSelection, ExportSelection
+
- -font, font, Font
+
- -foreground or -fg, foreground, Foreground
+
- -highlightbackground, highlightBackground, HighlightBackground
+
- -highlightcolor, highlightColor, HighlightColor
+
- -highlightthickness, highlightThickness, HighlightThickness
+
- -image, image, Image
+
- -insertbackground, insertBackground, Foreground
+
- -insertborderwidth, insertBorderWidth, BorderWidth
+
- -insertofftime, insertOffTime, OffTime
+
- -insertontime, insertOnTime, OnTime
+
- -insertwidth, insertWidth, InsertWidth
+
- -jump, jump, Jump
+
- -justify, justify, Justify
+
- -orient, orient, Orient
+
- -padx, padX, Pad
+
- -pady, padY, Pad
+
- -relief, relief, Relief
+
- -repeatdelay, repeatDelay, RepeatDelay
+
- -repeatinterval, repeatInterval, RepeatInterval
+
- -selectbackground, selectBackground, Foreground
+
- -selectborderwidth, selectBorderWidth, BorderWidth
+
- -selectforeground, selectForeground, Background
+
- -setgrid, setGrid, SetGrid
+
- -takefocus, takeFocus, TakeFocus
+
- -text, text, Text
+
- -textvariable, textVariable, Variable
+
- -troughcolor, troughColor, Background
+
- -underline, underline, Underline
+
- -wraplength, wrapLength, WrapLength
+
- -xscrollcommand, xScrollCommand, ScrollCommand
+
- -yscrollcommand, yScrollCommand, ScrollCommand
+
+- KEYWORDS
+
+
+options - Standard options supported by widgets
+
+This manual entry describes the common configuration options supported
+by widgets in the Tk toolkit. Every widget does not necessarily support
+every option (see the manual entries for individual widgets for a list
+of the standard options supported by that widget), but if a widget does
+support an option with one of the names listed below, then the option
+has exactly the effect described below.
+
+In the descriptions below, ``Command-Line Name'' refers to the
+switch used in class commands and configure widget commands to
+set this value. For example, if an option's command-line switch is
+-foreground and there exists a widget .a.b.c, then the
+command
+
.a.b.c configure -foreground black
+may be used to specify the value black for the option in the
+the widget .a.b.c. Command-line switches may be abbreviated,
+as long as the abbreviation is unambiguous.
+``Database Name'' refers to the option's name in the option database (e.g.
+in .Xdefaults files). ``Database Class'' refers to the option's class value
+in the option database.
+
+- Command-Line Name: -activebackground
+
- Database Name: activeBackground
+
- Database Class: Foreground
+
- Specifies background color to use when drawing active elements.
+An element (a widget or portion of a widget) is active if the
+mouse cursor is positioned over the element and pressing a mouse button
+will cause some action to occur.
+If strict Motif compliance has been requested by setting the
+tk_strictMotif variable, this option will normally be
+ignored; the normal background color will be used instead.
+For some elements on Windows and Macintosh systems, the active color
+will only be used while mouse button 1 is pressed over the element.
+
- Command-Line Name: -activeborderwidth
+
- Database Name: activeBorderWidth
+
- Database Class: BorderWidth
+
- Specifies a non-negative value indicating
+the width of the 3-D border drawn around active elements. See above for
+definition of active elements.
+The value may have any of the forms acceptable to Tk_GetPixels.
+This option is typically only available in widgets displaying more
+than one element at a time (e.g. menus but not buttons).
+
- Command-Line Name: -activeforeground
+
- Database Name: activeForeground
+
- Database Class: Background
+
- Specifies foreground color to use when drawing active elements.
+See above for definition of active elements.
+
- Command-Line Name: -anchor
+
- Database Name: anchor
+
- Database Class: Anchor
+
- Specifies how the information in a widget (e.g. text or a bitmap)
+is to be displayed in the widget.
+Must be one of the values n, ne, e, se,
+s, sw, w, nw, or center.
+For example, nw means display the information such that its
+top-left corner is at the top-left corner of the widget.
+
- Command-Line Name: -background or -bg
+
- Database Name: background
+
- Database Class: Background
+
- Specifies the normal background color to use when displaying the
+widget.
+
- Command-Line Name: -bitmap
+
- Database Name: bitmap
+
- Database Class: Bitmap
+
- Specifies a bitmap to display in the widget, in any of the forms
+acceptable to Tk_GetBitmap.
+The exact way in which the bitmap is displayed may be affected by
+other options such as anchor or justify.
+Typically, if this option is specified then it overrides other
+options that specify a textual value to display in the widget;
+the bitmap option may be reset to an empty string to re-enable
+a text display.
+In widgets that support both bitmap and image options,
+image will usually override bitmap.
+
- Command-Line Name: -borderwidth or -bd
+
- Database Name: borderWidth
+
- Database Class: BorderWidth
+
- Specifies a non-negative value indicating the width
+of the 3-D border to draw around the outside of the widget (if such a
+border is being drawn; the relief option typically determines
+this). The value may also be used when drawing 3-D effects in the
+interior of the widget.
+The value may have any of the forms acceptable to Tk_GetPixels.
+
- Command-Line Name: -cursor
+
- Database Name: cursor
+
- Database Class: Cursor
+
- Specifies the mouse cursor to be used for the widget.
+The value may have any of the forms acceptable to Tk_GetCursor.
+
- Command-Line Name: -disabledforeground
+
- Command-Line Name: -disabledbackground
+
- Database Name: disabledBackground
+
- Database Class: DisabledBackground
+
- Specifies background color to use when drawing a disabled element.
+If the option is specified as an empty string (which is typically the
+case on monochrome displays), disabled elements are drawn with the
+normal background color but they are dimmed by drawing them
+with a stippled fill pattern.
+
- Database Name: disabledForeground
+
- Database Class: DisabledForeground
+
- Specifies foreground color to use when drawing a disabled element.
+If the option is specified as an empty string (which is typically the
+case on monochrome displays), disabled elements are drawn with the
+normal foreground color but they are dimmed by drawing them
+with a stippled fill pattern.
+
- Command-Line Name: -exportselection
+
- Database Name: exportSelection
+
- Database Class: ExportSelection
+
- Specifies whether or not a selection in the widget should also be
+the X selection.
+The value may have any of the forms accepted by Tcl_GetBoolean,
+such as true, false, 0, 1, yes, or no.
+If the selection is exported, then selecting in the widget deselects
+the current X selection, selecting outside the widget deselects any
+widget selection, and the widget will respond to selection retrieval
+requests when it has a selection. The default is usually for widgets
+to export selections.
+
- Command-Line Name: -font
+
- Database Name: font
+
- Database Class: Font
+
- Specifies the font to use when drawing text inside the widget.
+
- Command-Line Name: -foreground or -fg
+
- Database Name: foreground
+
- Database Class: Foreground
+
- Specifies the normal foreground color to use when displaying the widget.
+
- Command-Line Name: -highlightbackground
+
- Database Name: highlightBackground
+
- Database Class: HighlightBackground
+
- Specifies the color to display in the traversal highlight region when
+the widget does not have the input focus.
+
- Command-Line Name: -highlightcolor
+
- Database Name: highlightColor
+
- Database Class: HighlightColor
+
- Specifies the color to use for the traversal highlight rectangle that is
+drawn around the widget when it has the input focus.
+
- Command-Line Name: -highlightthickness
+
- Database Name: highlightThickness
+
- Database Class: HighlightThickness
+
- Specifies a non-negative value indicating the width of the highlight
+rectangle to draw around the outside of the widget when it has the
+input focus.
+The value may have any of the forms acceptable to Tk_GetPixels.
+If the value is zero, no focus highlight is drawn around the widget.
+
- Command-Line Name: -image
+
- Database Name: image
+
- Database Class: Image
+
- Specifies an image to display in the widget, which must have been
+created with the image create command.
+Typically, if the image option is specified then it overrides other
+options that specify a bitmap or textual value to display in the widget;
+the image option may be reset to an empty string to re-enable
+a bitmap or text display.
+
- Command-Line Name: -insertbackground
+
- Database Name: insertBackground
+
- Database Class: Foreground
+
- Specifies the color to use as background in the area covered by the
+insertion cursor. This color will normally override either the normal
+background for the widget (or the selection background if the insertion
+cursor happens to fall in the selection).
+
- Command-Line Name: -insertborderwidth
+
- Database Name: insertBorderWidth
+
- Database Class: BorderWidth
+
- Specifies a non-negative value indicating the width
+of the 3-D border to draw around the insertion cursor.
+The value may have any of the forms acceptable to Tk_GetPixels.
+
- Command-Line Name: -insertofftime
+
- Database Name: insertOffTime
+
- Database Class: OffTime
+
- Specifies a non-negative integer value indicating the number of
+milliseconds the insertion cursor should remain ``off'' in each blink cycle.
+If this option is zero then the cursor doesn't blink: it is on
+all the time.
+
- Command-Line Name: -insertontime
+
- Database Name: insertOnTime
+
- Database Class: OnTime
+
- Specifies a non-negative integer value indicating the number of
+milliseconds the insertion cursor should remain ``on'' in each blink cycle.
+
- Command-Line Name: -insertwidth
+
- Database Name: insertWidth
+
- Database Class: InsertWidth
+
- Specifies a value indicating the total width of the insertion cursor.
+The value may have any of the forms acceptable to Tk_GetPixels.
+If a border has been specified for the insertion
+cursor (using the insertBorderWidth option), the border
+will be drawn inside the width specified by the insertWidth
+option.
+
- Command-Line Name: -jump
+
- Database Name: jump
+
- Database Class: Jump
+
- For widgets with a slider that can be dragged to adjust a value,
+such as scrollbars, this option determines when
+notifications are made about changes in the value.
+The option's value must be a boolean of the form accepted by
+Tcl_GetBoolean.
+If the value is false, updates are made continuously as the
+slider is dragged.
+If the value is true, updates are delayed until the mouse button
+is released to end the drag; at that point a single notification
+is made (the value ``jumps'' rather than changing smoothly).
+
- Command-Line Name: -justify
+
- Database Name: justify
+
- Database Class: Justify
+
- When there are multiple lines of text displayed in a widget, this
+option determines how the lines line up with each other.
+Must be one of left, center, or right.
+Left means that the lines' left edges all line up, center
+means that the lines' centers are aligned, and right means
+that the lines' right edges line up.
+
- Command-Line Name: -orient
+
- Database Name: orient
+
- Database Class: Orient
+
- For widgets that can lay themselves out with either a horizontal
+or vertical orientation, such as scrollbars, this option specifies
+which orientation should be used. Must be either horizontal
+or vertical or an abbreviation of one of these.
+
- Command-Line Name: -padx
+
- Database Name: padX
+
- Database Class: Pad
+
- Specifies a non-negative value indicating how much extra space
+to request for the widget in the X-direction.
+The value may have any of the forms acceptable to Tk_GetPixels.
+When computing how large a window it needs, the widget will
+add this amount to the width it would normally need (as determined
+by the width of the things displayed in the widget); if the geometry
+manager can satisfy this request, the widget will end up with extra
+internal space to the left and/or right of what it displays inside.
+Most widgets only use this option for padding text: if they are
+displaying a bitmap or image, then they usually ignore padding
+options.
+
- Command-Line Name: -pady
+
- Database Name: padY
+
- Database Class: Pad
+
- Specifies a non-negative value indicating how much extra space
+to request for the widget in the Y-direction.
+The value may have any of the forms acceptable to Tk_GetPixels.
+When computing how large a window it needs, the widget will add
+this amount to the height it would normally need (as determined by
+the height of the things displayed in the widget); if the geometry
+manager can satisfy this request, the widget will end up with extra
+internal space above and/or below what it displays inside.
+Most widgets only use this option for padding text: if they are
+displaying a bitmap or image, then they usually ignore padding
+options.
+
- Command-Line Name: -relief
+
- Database Name: relief
+
- Database Class: Relief
+
- Specifies the 3-D effect desired for the widget. Acceptable
+values are raised, sunken, flat, ridge,
+solid, and groove.
+The value
+indicates how the interior of the widget should appear relative
+to its exterior; for example, raised means the interior of
+the widget should appear to protrude from the screen, relative to
+the exterior of the widget.
+
- Command-Line Name: -repeatdelay
+
- Database Name: repeatDelay
+
- Database Class: RepeatDelay
+
- Specifies the number of milliseconds a button or key must be held
+down before it begins to auto-repeat. Used, for example, on the
+up- and down-arrows in scrollbars.
+
- Command-Line Name: -repeatinterval
+
- Database Name: repeatInterval
+
- Database Class: RepeatInterval
+
- Used in conjunction with repeatDelay: once auto-repeat
+begins, this option determines the number of milliseconds between
+auto-repeats.
+
- Command-Line Name: -selectbackground
+
- Database Name: selectBackground
+
- Database Class: Foreground
+
- Specifies the background color to use when displaying selected
+items.
+
- Command-Line Name: -selectborderwidth
+
- Database Name: selectBorderWidth
+
- Database Class: BorderWidth
+
- Specifies a non-negative value indicating the width
+of the 3-D border to draw around selected items.
+The value may have any of the forms acceptable to Tk_GetPixels.
+
- Command-Line Name: -selectforeground
+
- Database Name: selectForeground
+
- Database Class: Background
+
- Specifies the foreground color to use when displaying selected
+items.
+
- Command-Line Name: -setgrid
+
- Database Name: setGrid
+
- Database Class: SetGrid
+
- Specifies a boolean value that determines whether this widget controls the
+resizing grid for its top-level window.
+This option is typically used in text widgets, where the information
+in the widget has a natural size (the size of a character) and it makes
+sense for the window's dimensions to be integral numbers of these units.
+These natural window sizes form a grid.
+If the setGrid option is set to true then the widget will
+communicate with the window manager so that when the user interactively
+resizes the top-level window that contains the widget, the dimensions of
+the window will be displayed to the user in grid units and the window
+size will be constrained to integral numbers of grid units.
+See the section GRIDDED GEOMETRY MANAGEMENT in the wm manual
+entry for more details.
+
- Command-Line Name: -takefocus
+
- Database Name: takeFocus
+
- Database Class: TakeFocus
+
- Determines whether the window accepts the focus during keyboard
+traversal (e.g., Tab and Shift-Tab).
+Before setting the focus to a window, the traversal scripts
+consult the value of the takeFocus option.
+A value of 0 means that the window should be skipped entirely
+during keyboard traversal.
+1 means that the window should receive the input
+focus as long as it is viewable (it and all of its ancestors are mapped).
+An empty value for the option means that the traversal scripts make
+the decision about whether or not to focus on the window: the current
+algorithm is to skip the window if it is
+disabled, if it has no key bindings, or if it is not viewable.
+If the value has any other form, then the traversal scripts take
+the value, append the name of the window to it (with a separator space),
+and evaluate the resulting string as a Tcl script.
+The script must return 0, 1, or an empty string: a
+0 or 1 value specifies whether the window will receive
+the input focus, and an empty string results in the default decision
+described above.
+Note: this interpretation of the option is defined entirely by
+the Tcl scripts that implement traversal: the widget implementations
+ignore the option entirely, so you can change its meaning if you
+redefine the keyboard traversal scripts.
+
- Command-Line Name: -text
+
- Database Name: text
+
- Database Class: Text
+
- Specifies a string to be displayed inside the widget. The way in which
+the string is displayed depends on the particular widget and may be
+determined by other options, such as anchor or justify.
+
- Command-Line Name: -textvariable
+
- Database Name: textVariable
+
- Database Class: Variable
+
- Specifies the name of a variable. The value of the variable is a text
+string to be displayed inside the widget; if the variable value changes
+then the widget will automatically update itself to reflect the new value.
+The way in which the string is displayed in the widget depends on the
+particular widget and may be determined by other options, such as
+anchor or justify.
+
- Command-Line Name: -troughcolor
+
- Database Name: troughColor
+
- Database Class: Background
+
- Specifies the color to use for the rectangular trough areas
+in widgets such as scrollbars and scales.
+
- Command-Line Name: -underline
+
- Database Name: underline
+
- Database Class: Underline
+
- Specifies the integer index of a character to underline in the widget.
+This option is used by the default bindings to implement keyboard
+traversal for menu buttons and menu entries.
+0 corresponds to the first character of the text displayed in the
+widget, 1 to the next character, and so on.
+
- Command-Line Name: -wraplength
+
- Database Name: wrapLength
+
- Database Class: WrapLength
+
- For widgets that can perform word-wrapping, this option specifies
+the maximum line length.
+Lines that would exceed this length are wrapped onto the next line,
+so that no line is longer than the specified length.
+The value may be specified in any of the standard forms for
+screen distances.
+If this value is less than or equal to 0 then no wrapping is done: lines
+will break only at newline characters in the text.
+
- Command-Line Name: -xscrollcommand
+
- Database Name: xScrollCommand
+
- Database Class: ScrollCommand
+
- Specifies the prefix for a command used to communicate with horizontal
+scrollbars.
+When the view in the widget's window changes (or
+whenever anything else occurs that could change the display in a
+scrollbar, such as a change in the total size of the widget's
+contents), the widget will
+generate a Tcl command by concatenating the scroll command and
+two numbers.
+Each of the numbers is a fraction between 0 and 1, which indicates
+a position in the document. 0 indicates the beginning of the document,
+1 indicates the end, .333 indicates a position one third the way through
+the document, and so on.
+The first fraction indicates the first information in the document
+that is visible in the window, and the second fraction indicates
+the information just after the last portion that is visible.
+The command is
+then passed to the Tcl interpreter for execution. Typically the
+xScrollCommand option consists of the path name of a scrollbar
+widget followed by ``set'', e.g. ``.x.scrollbar set'': this will cause
+the scrollbar to be updated whenever the view in the window changes.
+If this option is not specified, then no command will be executed.
+
- Command-Line Name: -yscrollcommand
+
- Database Name: yScrollCommand
+
- Database Class: ScrollCommand
+
- Specifies the prefix for a command used to communicate with vertical
+scrollbars. This option is treated in the same way as the
+xScrollCommand option, except that it is used for vertical
+scrollbars and is provided by widgets that support vertical scrolling.
+See the description of xScrollCommand for details
+on how this option is used.
+
+
+
+class, name, standard option, switch
+
+Copyright © 1990-1994 The Regents of the University of California.
+Copyright © 1994-1996 Sun Microsystems, Inc.
+Copyright © 1995-1997 Roger E. Critchlow Jr.
+
diff --git a/lib/bwidget/CHANGES.txt b/lib/bwidget/CHANGES.txt
new file mode 100644
index 0000000..171d675
--- /dev/null
+++ b/lib/bwidget/CHANGES.txt
@@ -0,0 +1,266 @@
+____________________________________________________________
+BWidget 1.2.1 (07/09/1999)
+
+CHANGES FROM 1.2 TO 1.2.1
+
+ This version is the first patch of 1.2. It does not introduce
+ incompatibilites.
+ This patch include some new requested features, that I think
+ can't wait for 1.3:
+ - special menu handling (see MainFrame)
+ - tabs bindings in NoteBook
+ - label alignment of LabelFrame
+ - -repeatdelay and -repeatinterval options on SpinBox
+
+
+* Entry
+ - event added to tag BwDisabledEntry
+ - fixed bug when -textvariable use a variable containing space
+
+* MainFrame
+ - fixed bug when -textvariable use a variable containing space
+ - menubar entry creation modified to use the menuid as the
+ subpathname to permit special menu (help, system, apple)
+
+* LabelFrame
+ - LabelFrame::align command added
+
+* ScrollableFrame
+ - fixed typo bug
+
+* PagesManager
+ - fixed bug of window size
+ - 'pages' modified to optionally include first and last indices.
+ ('page' is still available but deprecated)
+
+* NoteBook
+ - new command 'bindtabs'
+ - fixed bug in handling result of -leavecmd command
+ - 'pages' modified to optionally include first and last indices.
+ ('page' is still available but deprecated)
+
+* ComboBox
+ - little border added around the popdown list, which appeared
+ to have no border under windows when popped above a widget
+ with the same background color.
+
+* SpinBox
+ - options -repeatdelay and -repeatinterval added.
+
+* Tree
+ - fixed strange behaviour when editing: 'selection range'
+ replaced by 'selection from'/'selection to'
+ - widget is redrawn if needed in 'edit' and 'see'
+ - fixed bug in see
+ - nodes modified to optionally include first and last indices.
+ - _subdelete modified to iterative method
+
+* ListBox
+ - fixed strange behaviour when editing: 'selection range'
+ replaced by 'selection from'/'selection to'
+ - ListBox is redrawn if needed in 'edit' and 'see'
+ - fixed bug in see
+ - 'items' modified to optionally include first and last indices.
+ ('item' is still available but deprecated)
+
+* SelectColor
+ - fixed bug in call to GlobalVar::trace renamed GlobalVar::tracevar
+
+* DragSite and DropSite
+ - fixed bug introduced by new button event.
+
+* DynamicHelp
+ - restored version of 1.1, due to the bug under windows
+
+* BWidget::place
+ - fixed bug when x or y is 0.
+
+* es.rc resource file included
+
+
+____________________________________________________________
+BWidget 1.2 (05/21/1999)
+
+CHANGES FROM 1.1 TO 1.2
+
+
+* 4 new widget:
+ - ScrollableFrame
+ - ScrollView
+ - PagesManager
+ - PasswdDlg (contributed by Stephane Lavirotte)
+
+* Widget:
+ - Flag option type added
+ - option resource database read while widget creation,
+ not while widget class creation.
+ - better handling of BWidget definition using another BWidget as a top pathname.
+
+* MainFrame
+ - more options included for ProgressBar
+ (INCOMPATIBILITY: option -variable renamed -progressvar)
+ - -menu option modified to have tags on entries and menu id on cascad menu
+ (INCOMPATIBILITY of option -menu)
+ - new command: getmenu
+ - new command: setmenustate
+
+* DropSite
+ - operations completly reworked
+ - option -droptypes modified (INCOMPATIBILITY)
+ - return code of -dropovercmd modified
+ bit 'ok' and bit 'recall' reverted
+ (INCOMPATIBILITY in -dropovercmd command)
+ - new command: setoperation
+
+* DragSite:
+ - Drag now initiates while followed by of
+ 4 pixels, so it is possible to have a event and
+ drag event on the same button.
+ - -dragevent option modified: must be the number of the button: 1, 2 or 3
+ Option is now defaulted to 1, but Entry widget keep it to 3.
+ (INCOMPATIBILITY)
+ - return result of -draginitcmd modified (INCOMPATIBILITY)
+
+* ListBox:
+ - edit command improved.
+ new arguments: initial text, and command to verify the text before accept it.
+ (INCOMPATIBILITY in call to edit)
+ - Drag and Drop modified
+ (INCOMPATIBILITY in -dropovercmd command)
+ - new command: reorder
+
+* Tree:
+ - edit command improved.
+ new arguments: initial text, and command to verify the text before accept it.
+ (INCOMPATIBILITY in call to edit)
+ - Drag and Drop modified
+ (INCOMPATIBILITY in -dropovercmd command)
+ - new command: reorder
+ - new command: visible
+ - less full-redraw
+
+* NoteBook:
+ - relief reworked
+ - added option -leavecmd on pages
+ - option -image implemented
+ - new command: move
+ - delete command now accept an optionnal argument specifying
+ whether the frame of the page should be destroyed or not.
+ If not, this frame is reused by insert command for the same page.
+
+* Entry and LabelEntry:
+ - direct access to entry command
+ - bind command added on the entry subwidget
+
+* ComboBox:
+ - option -postcommand added
+ - bind command added on the entry subwidget
+
+* SpinBox:
+ - bind command added on the entry subwidget
+ - floating point fixed - work needed
+
+* ProgressBar:
+ - now can be incremental or not limited ('unknow-time' processing)
+
+* Bitmap:
+ - xpm image type added with use of xpm-to-image by Roger E. Critchlow Jr.
+
+* Lots of focus problem solved
+
+* ...and bugs corrected.
+
+
+INCOMPATIBILITIES
+
+ Incompatibilities are very localized, so we hope that it will
+ not be painfull to upgrade to 1.2.
+
+* MainFrame related imcompatibilities
+ - Upgrade MainFrame -menu option and change -variable option
+ by -progressvar.
+
+* Drag and drop related imcompatibilities
+ - Upgrade -dragevent option, and command associated to -draginitcmd
+ and -dropovercmd.
+ - Upgrade -dragendcmd/-dragovercmd command of Tree and ListBox widget
+
+* Edition in Tree and ListBox
+ - Verify arguments passed in call to edit command of
+ Tree and ListBox
+
+
+____________________________________________________________
+BWidget 1.1 (03/12/1999)
+
+CHANGES FROM 1.0 TO 1.1
+
+WHAT'S NEW
+
+The most important change in BWidget 1.1 is the support
+of tk path command, but the old syntax is always available.
+configure command now returns a valid configuration information list.
+
+(I hope that) All submitted bugs have been corrected.
+
+Following widget have been reworked:
+
+* ListBox:
+ - ListBox items have now a -indent option.
+ - insert command modified to look more as a tk
+ listbox insert command (see INCOMPATIBILITIES)
+ - item command added to retreive one or more items
+
+* Tree:
+ - insert command modified to look more as a
+ listbox insert command (see INCOMPATIBILITIES)
+
+* LabelEntry:
+ - -value and -variable options renamed to -text and -textvariable
+ (see INCOMPATIBILITIES)
+
+* SpinBox and ComboBox:
+ - -value and -variable options renamed to -text and -textvariable
+ (see INCOMPATIBILITIES)
+ - New command getvalue and setvalue added to manipulate
+ current value by index.
+
+* NoteBook:
+ - Pages have now an identifier.
+ - insert command modififed (see INCOMPATIBILITIES)
+ - page command added to retreive one or more pages
+ - getframe command added
+
+
+INCOMPATIBILITIES (sorry for this)
+
+* LabelEntry, SpinBox and ComboBox:
+ - -value and -variable options renamed to -text and -textvariable
+
+* Entry and LabelEntry:
+ - setfocus doesn't exist anymore. Directly use tk command focus.
+
+* NoteBook:
+ - Pages have now an identifier, which modifies insert command:
+ NoteBook::insert $nb index ?option value ...?
+ is now
+ $nb insert index page ?option value ...?
+
+* Tree:
+ - insert command modified:
+ Tree::insert $nb $parent $node $index ?option value ...?
+ becomes
+ $tree insert $index $parent $node ?option value ...?
+
+* ListBox:
+ - insert command modified:
+ ListBox::insert $list $item $index ?option value ...?
+ becomes
+ $list insert $index $item ?option value ...?
+
+
+____________________________________________________________
+BWidget 1.0 (02/19/1999)
+
+ First release.
+
diff --git a/lib/bwidget/ChangeLog b/lib/bwidget/ChangeLog
new file mode 100644
index 0000000..65b65a0
--- /dev/null
+++ b/lib/bwidget/ChangeLog
@@ -0,0 +1,2148 @@
+2011-06-24 Harald Oehlmann
+
+ **** BWidget 1.9.5 tagged ****
+
+2011-06-23 Harald Oehlmann
+
+ * listbox.tcl (listbox::generate_data) fixed last patch
+ by ryotakatsuki [Bug 3324610]
+
+ 2011-06-23 Harald Oehlmann
+
+ * listbox.tcl Fix of Bug 3000293 broke listbox tags.
+ The bindImage subcommand did not report right tag.
+ Patch by ryotakatsuki [Bug 3324610]
+
+2011-06-23 Harald Oehlmann
+
+ * listbox.tcl, tree.tcl (_update_scrollregion) the linewise
+ scrolling did not always scroll up to the end on windows 7.
+ Report and patch by Wojciech Kocjan, review and modification
+ by Koen Danckaert [Bug 3317772]
+
+2011-05-25 Harald Oehlmann
+
+ *mainframe.tcl: Add a boolean readonly option -sizegrip
+ to show a sizegrip widget in themed mode.
+
+2011-05-24 Harald Oehlmann
+
+ *lang/pl.rc updated by Wojciech Kocjan.
+
+2011-04-26 Harald Oehlmann
+
+ *notebook.tcl The user frame of the notebook is now a themed
+ frame in themed mode. The set background color does not apply
+ to the user frame in this case.
+
+2011-04-26 Harald Oehlmann
+
+ label.tcl configuring foreground color caused error when
+ themed [Bug 3292977]
+
+2011-04-20 Harald Oehlmann
+
+ lang/hu.rc by Rezso updated
+
+2011-04-20 Harald Oehlmann
+
+ * font.tcl, lang/*.rc: Add translation possibility
+ for color picker button of font dialog.
+ Used google translater to translate "Color" to all languages.
+ Please check if this is correct. [Bug 3289573] reported by Rezso
+
+2011-04-19 Harald Oehlmann
+
+ * lang/*.rc [Bug 3289573] : Add translation (templates) for the
+ Color picker widget text "Base colors" and "User colors".
+ Only german and english locals are provided so far.
+
+2011-02-14 Harald Oehlmann
+
+ * combobox.tcl: [Bug 3182287] : ComboBox failes in themed mode
+ due to the use of the themed entry widget. The following options
+ are not supported (and thus called) any more: -relief
+ -highlightbackground -highlightforeground
+
+2011-02-14 Harald Oehlmann
+
+ * entry.tcl, labelentry.tcl, labelframe.tcl, mainframe.tcl,
+ pagesmgr.tcl, scrollw.tcl: [Bug 3168761]:
+ entry failes when themed support activated with:
+ unknown option "-highlightthickness" (reported by George
+ on clt 27 Jan., 16:55).
+ The patch by Wojciech Kocjan fixes this and enhances
+ labelentry, labelframe and pagesmgr to also use themed frames.
+ Within scrollw.tcl, a bug for empty background handling is fixed.
+ The scrollbar background is not set any more for not-themed widget.
+
+2011-01-17 Harald Oehlmann
+
+ * pkgIndex.tcl: corrected package version in package provide
+
+2010-12-14 Harald Oehlmann
+
+ **** BWidget 1.9.4 tagged ****
+
+2010-12-14 Andreas Kupries
+
+ * tree.tcl [Bug 3106208]: Followup. Moved the fixed code of the
+ last entry I did (2010-11-09) into a new command Tree::MergeFlag
+ and call this from both Tree::itemconfigure and Tree::insert.
+ Missing the place in Tree::insert caused another problem, found by
+ Dustin Littau.
+
+2010-11-05 Harald Oehlmann
+
+ **** BWidget 1.9.3 tagged ****
+
+2010-11-23 Harald Oehlmann
+
+ * scrollw.tcl Add theming support for ScrolledWindow widget.
+ * ScrolledWindow.html Themed mode documented.
+
+2010-11-21 Harald Oehlmann
+
+ * label.tcl Add theming support for Label widget.
+ * label.html Themed mode documented.
+
+2010-11-16 Harald Oehlmann
+
+ * button.tcl Add theming support for Button widget.
+ Option "-relief link" is mapped to "Toolbutton style.
+ Option -height is not available when themed.
+ Thanks to Kevin Walzer for the test on MacOS.
+ * buttonbox.tcl When themed, only set themed button options.
+ The widget itself is not jet themed.
+ * Dialog.html Removed documentation of unavailable option -buttonwidth.
+
+2010-11-09 Andreas Kupries
+
+ * tree.tcl (Tree::itemconfigure): Fix intermingling of node names
+ and flag values which can cause an lsearch to fail, by mistaking a
+ flag value as the node searched for, and then treating a node name
+ as flags. As the upd,nodes value is a dictionary it should not be
+ search as a list. Now using a temporary array for quicker check
+ and append/replace [Bug 3106208].
+
+2010-11-09 Harald Oehlmann
+
+ * mainframe.tcl Menu text shows white on white on Mac aqua
+ [Bug 3105665] reported by Scott Smedley fixed by Kevin Walzer.
+
+2010-10-15 Harald Oehlmann
+
+ * label.tcl The frame surround the label gets under
+ unknown conditions a -padx 5. A pad of 0 is now
+ hard coded (Bug 3087955)
+
+2010-08-04 Harald Oehlmann
+
+ * dialog.tcl Changed behaviour of window close button.
+ If -cancel is given, this button is invoked.
+ The cancel option may now be changed using the configure
+ method.
+
+ * init.tcl If msgcat is available use its locale to load
+ a lang/*.rc file instead always using en.rc.
+
+2010-06-09 Harald Oehlmann
+
+ * Included lang/pl.rc from HEAD.
+
+2010-06-07 Harald Oehlmann
+
+ **** BWidget 1.9.2 tagged ****
+ Version 1.9.1 was skipped.
+ This was released in ActiveTCL and thus may exist on many
+ installations.
+
+2010-05-31 Harald Oehlmann
+
+ * listbox.html Reflected patch 2010-05-12 in documentation.
+ The selection may not be disabled any more by binding button 1.
+
+2010-05-12 Harald Oehlmann
+
+ * listbox.tcl(ListBox::bindText and ListBox::bindImage)
+ Method bindText and bindImage overwrote internal selection
+ bindings [Bug 3000293] reported by Robert Karen.
+
+2010-05-11 Harald Oehlmann
+
+ * listbox.tcl(ListBox::see) Method see shifts image out of
+ view. Showed up, by a selection click on a long item with icon
+ [Bug 2999764] reported by Robert Karen.
+
+2010-05-05 Harald Oehlmann
+
+ * listbox.tcl(ListBox::_configureSelectmode) Drag modifies
+ multiple selection [Bug 2995969] reported by Robert Karen.
+ Bound events on ButtonRelease-1 instead Button-1 for multiple
+ selections to avoid bug.
+ * listbox.tcl(ListBox::_drag_and_drop) The default drag and drop
+ routine only handled single drag and drop.
+ It was extended to handle also drag and drop of multiple entries.
+
+2009-09-03 Harald Oehlmann
+
+ * util.tcl(BWidget::place), BWidget.html Widget placed incorrectly,
+ when bigger than current screen [Bug 2850031] by Thomas Grausgruber
+ Possible incompatibility: BWidget::place w h -> w,h are reduced to
+ screen width.
+
+2009-08-12 Harald Oehlmann
+
+ * dynhelp.tcl Use balloon help font TkTooltipFont if tk <= 8.5.
+ Otherwise use helvetica 11 on Aqua [Patch 2835180] for Kevin Walzer
+ * dynhelp.tcl(DynamicHelp::_show_help)Replaced aqua conditional code
+ check by $Widget::_aqua
+
+2009-08-10 Harald Oehlmann
+
+ * notebook.tcl (NoteBook::delete) Method delete destroyframe=1 and
+ reinsertion -> raise failed - state variables were deleted.
+ [Bug 2831785] by kjnash
+ * tree.tcl (Tree::_keynav) Fire virtual event <> also on
+ keyboard navigation [Patch 2828086] by Kevin Walzer
+ * combobox.tcl Replaced aqua conditional code check by $Widget::_aqua
+
+2009-08-10 Harald Oehlmann
+
+ **** Branched to bwidget ****
+
+ This is the bwidget branch of module bwidget of tcllib
+ Use "-r bwidget" for all cvs operations
+ Scope: Package BWidget compatible to tcl/tk 8.1 and tk
+ (e.g. no tile/ttk).
+
+2009-07-24 Harald Oehlmann
+
+ **** BWidget 1.9.0 tagged ****
+
+ * pkgIndex.tcl, README.txt: updated to BWidget 1.9
+
+2009-07-23 Harald Oehlmann
+
+ * tree.tcl (Tree::_set_help), Tree.html DynamicHelp -helpcmd added to
+ tree node help
+ * tree.tcl (Tree::_draw_subnodes) a vertical line to a virtual root node
+ above the widget is only drawn when there are multiple child nodes.
+ This reverts the modification dated 2004-04-21 for this case.
+ [Patch 2825354] by Koen Danckaert
+
+2009-07-17 Harald Oehlmann
+
+ * scrollframe.tcl (ScrollableFrame::create et al) ScrollableFrame.html
+ Background color of canvas takes the color of the scrolled frame.
+ If themed, canvas takes the themed color of the scrolled themed frame.
+ If themed, parameters -background and -bg are not available(doc + code).
+ [Patch 2822970] by Koen Danckaert
+
+2009-07-15 Harald Oehlmann
+
+ * dynhelp.tcl (DynamicHelp) Typo from yesterday corrected
+ [Patch 2820851] by Koen Danckaert
+
+2009-07-14 Harald Oehlmann
+
+ * dynhelp.tcl (DynamicHelp::_leave_info et al) issues:
+ - menu help sometimes not cleared when clicking off-window (unix)
+ - "-helpcmd" available also when dynamichelp is included in another
+ widget.
+ - given "-helpcmd" always called at global scope.
+ - Protect against multiple calls of event.
+ [Patch 2820851] by Koen Danckaert
+
+2009-07-07 Harald Oehlmann
+
+ * combobox.tcl (ComboBox::_select) Do not export selection if
+ -exportselection 0 [Patch 981545] by Jeffrey Hobbs
+
+2009-07-02 Harald Oehlmann
+
+ * widget.tcl (Widget::configure) Bug: ProgressDlg option -geometry
+ not setable. The former patch was improved.
+ Koen Danckaert and myself argued, that we modify symptoms without
+ basic understandings. Anyway, better now than before.
+
+2009-07-01 Harald Oehlmann
+
+ * mainframe.tcl, MainFrame.html (MainFrame::getmenustate)
+ Added method getmenustate to return menu tag state
+ [Bug 948063] reported by Rolf Ade
+
+ * combobox.tcl (ComboBox::configure) Bug fixed: Widget did not take
+ focus, when -editable false and "configure -state normal" called.
+ [Bug 756334] reported by Rolf Ade
+
+ * widget.tcl (Widget::configure) Bug: ProgressDlg option -bg not
+ setable. The special handling of subwidgets with special class or
+ path ":cmd" was improved. [Bug 611477]
+
+ * notebook.tcl (NoteBook::_itemconfigure) Not honored option:
+ itemconfigure ... -helptext [Patch 2814050] by Koen Danckaert
+
+2009-06-30 Harald Oehlmann
+
+ * buttonbox.tcl (ButtonBox::_redraw) Bug corrected:
+ -uniform gridding option is used if tcl version >= 8.4 (not 8.3).
+ [Patch 2807147] by Koen Danckaert
+
+ * tree.tcl (Tree::_drop_cmd) If there is no node, drop didn't work.
+ [Bug 1042613] reported by Rolf Ade
+
+ * Tree.html Bind commands: removed promise that %W would work in future.
+ The underlying widgets should only be manipulated using the node id.
+ [Bug 1224203] by Jasper Taylor, remarks by J. Tang
+
+ * Tree.html Bind commands: with -selectfill, the given command is
+ overwritten for the background box. [Bug 1003962] by Torsten Berg
+
+ * dropsite.tcl (DropSite::register) Bug fixed: fails on multiple drop
+ targets [Bug 1213123] by T.Neil
+
+ * combobox.tcl (ComboBox::_create_popup) Bug fixed: Return key in drop
+ down list when -bwlistbox true [Bug 1205536] patch by Steve Landers
+
+ * combobox.tcl (ComboBox::_create_popup, ComboBox::_unmapliste)
+ Mac aqua and x11 fixes, multi screen issue still open.
+ [Bug 1451784] report by Jasper Taylor, fix by Kevin Walzer
+
+ * listbox.tcl (ListBox::_multiple_select) Selected item not deselected
+ on control-click [Bug 1029144] reported by Konrad Rosenbaum
+
+
+2009-06-29 Harald Oehlmann
+
+ * ScrolledWindow.html ScrolledWindow documentation changed:
+ Documented options: -ipad, -sides, -size, -managed
+ [Patch 2807160] Text by Koen Danckaert
+ Removed (read only) remark of option -scrollbar.
+
+ * scrollframe.tcl (ScrollableFrame::create) changed bindings
+ [Patch 2807227] by Koen Danckaert (comment)
+
+ * scrollw.tcl (ScrolledWindow::_set_hscroll, ScrolledWindow::_set_vscroll)
+ Bug corrected: enless loop when both scrollbars where automatically
+ mapped and the window size was changed by this action (on linux).
+ Scrollbar unmapping and mapping secured by a locked update [Bug 2783019]
+
+ * widget.tcl (Widget::tkinclude) : option data base entry name keeps the
+ original name and not the renamed name.
+ The only resulting modification is to rename the option key for
+ "MessageDlg -text" from "*MessageDlg.frame.msg.message" to
+ "*MessageDlg.frame.msg.text". [Bug 1266792]
+
+ * widget.tcl (Widget::init) : fixed a memory leak on wrong option value.
+ [Bug 1230737]
+
+2009-06-26 Harald Oehlmann
+
+ * listbox.tcl (ListBox::create et al) new feature: listbox option
+ -listbox now read/write [Bug 1501874] reported by Stephen Huntley
+
+ * dynhelp.tcl (DynamicHelp::_show_help) fixed issue (as far as possible):
+ Dynamic help baloon was on the main screen, if it touched the border on
+ a windows multi screen configuration.
+ The fix assumes, that all screens have same dimensions and no gaps in-
+ between. This is necessary, because multi-screen configuration paramters
+ may not be interrogated by tk (despite of coordinates out of the screen)
+ [Bug 1499135] reported by Gregor
+
+ * notebook.tcl (NoteBook::delete) Deleted also state variables
+ [Bug 1445219] reported by Eric Kemp-Benedict
+
+2009-06-25 Harald Oehlmann
+
+ * combobox.tcl (ComboBox::getvalue et al) fixed bug: getvalue returned
+ first apearence of current data instead of clicked index, which may not
+ be the same if values is not unique. Additional variable _index(path)
+ added to hold click index [Bug 1610965] reported by Martin Lemburg
+
+2009-06-24 Harald Oehlmann
+
+ * scrollframe.tcl (ScrollableFrame::create, ScrollableFrame::_resize,
+ ScrollableFrame::_frameConfigure) fixed two issues:
+ - Scrollbar activated even if not necessary
+ Fix: update scrolling reagion on configure event of the frame
+ - Disfunction if the frame got to small to be on the current view
+ Fix: update scrolling reagion on map or unmap events
+ [Patch 2807227] by Koen Danckaert
+
+ * buttonbox.tcl (ButtonBox::_redraw) Bug: homogeneous button width
+ not honored if button size changes after creation.
+ -uniform gridding option is used if tcl version >= 8.3.
+ [Patch 2807147] by Koen Danckaert
+
+2009-06-16 Harald Oehlmann
+
+ * combobox.tcl (ComboBox::_create_popup) In dropdown list,
+ a vertical scrollbar was always shown if horizantal is used.
+ ScrolledWindow is now called with "-managed 1".
+ [Patch 2807160] by Koen Danckaert
+
+2009-06-11 Harald Oehlmann
+
+ * combobox.tcl removed \ before empty line (potential
+ trap) [Bug 2804961] Andreas Kupries
+
+ * dialog.html Documented -geometry option.
+ [Bug 1634416] Erik Leunissen
+
+2009-06-10 Harald Oehlmann
+
+ * no.rc added norwegian translation file
+ [Feature Request 2797153] provided by Lars Martin Hambro
+
+ * passwddlg.tcl (PasswdDlg::_verifonpasswd) check for
+ disabled password field and confirm directly.
+ [Bug 1642050] (Calvin Bascom) Enter key did not confirm
+ dialog when -passwdstate disabled.
+
+ * combobox.tcl (ComboBox::_select) included [Patch 981545],
+ but commented out - it works for me without it.
+
+2009-06-10 Harald Oehlmann
+
+ * dialog.html Added documentation for option -buttonwidth
+ of Dialog
+ [Bug 1668587] (Eric Leunissen)
+
+2009-06-10 Harald Oehlmann
+
+ * arrow.tcl initialised set _grab(oldstate) to "normal" to avoid
+ error when there is a ArrowButton::_leave without corresponding
+ ArrowButton::_enter [Bug 2762361]
+
+ * entry.tcl (Entry::_path_command) Add "invoke" to the list of
+ internally handled commands
+ [Bug 2340320] (patch by relaxmike@users.sourceforge.net)
+
+ * uitils.tcl (BWidget::place) BWidget::place used screen width
+ instead window width.
+ [Bug 1842346] (patch by Niels Gollesch ngoelles@users.sourceforge.net)
+
+ * listbox.tcl (ListBox::_redraw_selection) Added check if redrawn
+ item is on the to-delete list and thus does not exist any more as
+ BWidget. [Bug 1752755] (legolas_a20@users.sourceforge.net]
+
+2008-10-30 Jeff Hobbs
+
+ * tree.tcl (Tree::_node_name_rev): Return node names as they are
+ input, and properly handle :: in node names. This changes
+ internal node name reps, but should be transparent to the user,
+ except for the result of [insert].
+
+2008-05-26 Jeff Hobbs
+
+ * tree.tcl (Tree::_redraw_selection): do not allow empty
+ * listbox.tcl (ListBox::_redraw_selection): fill color as that
+ creates a transparent item that doesn't return a bbox. This
+ showed up on OS X/Aqua, where the listbox selectforeground
+ defaults to empty. [AS Bug 77186 74923]
+
+2007-10-31 Jeff Hobbs
+
+ * lang/nl.rc (new): Dutch translation [Bug 1804469]
+
+ * lang/hu.rc (new): Hungarian translation [Bug 1821842]
+
+ * tree.tcl (Tree::insert): do node_name on parent arg [Bug 1046955]
+
+ * listbox.tcl: speed up ListBox insertion significantly. [Bug 1472443]
+
+2007-05-11 Jeff Hobbs
+
+ * widget.tcl (Widget::theme): make sure Tk 8.5a6 is recognized as
+ having the themed widgets
+
+2006-12-20 J. Tang
+
+ * util.tcl: fixed BWidget::write for widgets that require
+ DynamicHelp. [bug 1518803]
+
+2006-12-05 Andreas Kupries
+
+ * demo/demo.tcl (Demo::main): Removed the 'inscope' qualifier from
+ the 'package require Bwidget'. The package system already forces
+ loading and sourcing of package code in the global namespace, so
+ this is bogus.
+
+2006-11-13 J. Tang
+
+ * panedw.tcl: if activator is set to line then its width is set to
+ 3. --activator was an undocumented option; updated man page to
+ make it documented. Thanks to Jos Decoster for pointing this out.
+
+2006-11-10 J. Tang
+
+ * widget.tcl: remove relative namespace resolution of variables,
+ in anticipation of TIP 278. Widget should have been doing this
+ anyways. [bug 1579744]
+
+ * DragSite.html: noted that -draginitcmd can return an empty
+ string to prevent a drag [bug 740499]
+
+ * DropSite.html: fixed documentation with DropSite::register
+ command [bug 740474]
+
+ * combobox.tcl: allow autocomplete and autopost be
+ enabled/disabled after the widget was created [bug 1588808]; fixed
+ keysym in autopost binding [bug 1589111]
+
+ * tree.tcl: fixed error with drag & drop's autoscroll [bug
+ 1408494]
+
+ * listbox.tcl: fixed error with drag & drop's autoscroll; fixed
+ error when dropping at the end of the list
+
+ * Added dynamic help to text tags (man page updated); fixed resize
+ bug with scrollframes. Thanks to Jos Decoster for these patches.
+
+2006-10-20 Jeff Hobbs
+
+ * utils.tcl (BWidget::bindMouseWheel): do not make special
+ mousewheel bindings if global ones exist (like from style::as)
+
+2006-09-28 J. Tang
+
+ **** BWIDGET 1.8.0 TAGGED ****
+
+ * removed Makefile.in
+
+ * font.tcl: correctly handle code path when user cancels dialog
+
+ * passwd.tcl: fixed Dialog::enddialog error; fixed ordering error
+
+ * pkgIndex.tcl, README.txt: updated to BWidget 1.8
+
+ * removed configure.in and aclocal.m4
+
+ * messagedlg.tcl: explicitly marked the 'Abort' button upon -type
+ abortretryignore to be the default button [bug 970199]
+
+ * Tree.html: documented [find] and [line] commands [bug 626819];
+ noted bug with %W binding [bug 1224203]
+
+ * tree.tcl: added [bindArea] procedure; updated man page [patch
+ 839066]
+
+ * combobox.tcl: added [clearvalue] proc to explicitly clear a
+ ComboBox value, updated man page [patch 780704]
+
+2006-09-26 J. Tang
+
+ * passwd.tcl: don't ignore -labelwidth when calculating label
+ widths; return key moves through subwidgets like most login
+ managers [patch 922877, with slight change]
+
+ * font.tcl: add options to select font color and to disable font
+ sizes; updated man pages [patch 1531199]
+
+ * font.tcl: using arrow keys to browse font family / font size
+ will cause an update to the shown sample font [patch 947109]
+
+ * demo/basic.tcl: fixed Entry's enter command callback [bug
+ 1400838]
+
+2006-08-21 J. Tang
+
+ * combobox.tcl: unpost after autoposting when another Tk window
+ gets the focus; unpost upon hitting the enter key
+
+ * scrollw.tcl: allow toggling of scrollbars [bug 1488712]
+
+ * Tree.html: corrected documentation for Tree::opencmd (callback
+ does not append the path to the tree to the command) [bug 1507713]
+
+ * tree.tcl: disable keyboard navigation for empty trees [bug 1514855]
+
+ * tree.tcl: changed '-drawcross allways' to be '-drawcross
+ always'; updated documentation
+
+2006-06-29 Jeff Hobbs
+
+ * statusbar.tcl (StatusBar::remove): remove neighboring separator
+ when removing the first item. [Bug 1512671]
+
+2006-03-24 J. Tang
+
+ * pkgIndex.tcl: removed bogus "ControlFrame" entry [bug 1429405]
+
+ * MainFrame man page: fixed some typos on man page
+
+ * mainframe.tcl: fixed status bar placement when it is re-shown
+ after a [showstatusbar none] command [bug 1027568]
+
+2006-03-23 J. Tang
+
+ * dynhelp.tcl: if a widget's help balloon is being displayed when
+ that widget is destroyed, also destroy the associated balloon [bug
+ 1448424]
+
+ * listbox.tcl: when deleting an item from the ListBox that has
+ dynamic help text, also remove its entry from the help array [bug
+ 1443461]
+
+2006-02-10 J. Tang
+
+ * ProgressDlg man page: note that caller must invoke [update], the
+ progressbar will not do it automatically [bug 1105778]
+
+ * progressbar.tcl: -maximum value must now be non-zero, else
+ divide by 0 occurs [bug 1145523]; use double() calculations to
+ prevent integer overflow with very large -maximum values [bug
+ 900165]
+
+ * PagesManager man page: clarified [add] behavior and default
+ state [bug 1305988]
+
+2006-02-08 J. Tang
+
+ * combobox.tcl: allow -autocomplete with uppercase chars [bug
+ 996569]; added -autopost option [patch 1359041]
+
+ * dynamic help man page: added clarification to -variable
+
+2006-01-25 J. Tang
+
+ * buttonbox.tcl: fixed -homogeneous calculation [bug 1362899]
+
+2005-11-01 Jeff Hobbs
+
+ * color.tcl (SelectColor::menu): use native dialog for palette
+ menu item where possible (and Widget::theme is used).
+
+2005-10-31 Jeff Hobbs
+
+ * statusbar.tcl: correct Widget::theme typos
+
+2005-10-12 Jeff Hobbs
+
+ * mainframe.tcl (MainFrame::configure): need to ignore -bg change
+ check when themed.
+
+2005-09-28 Jeff Hobbs
+
+ * mainframe.tcl (MainFrame::_create_menubar): ignore -bg -bd opts
+ when themed
+
+2005-09-22 Jeff Hobbs
+
+ * font.tcl (SelectFont::_getfont): fix tile compat to still set
+ data(family) and data(size) in any case.
+
+2005-09-19 Jeff Hobbs
+
+ * mainframe.tcl:
+ * font.tcl: remove tile compat options that aren't valid.
+
+2005-08-23 Jeff Hobbs
+
+ * mainframe.tcl: extend ttk theme awareness to subframes/separators
+
+2005-08-10 Jeff Hobbs
+
+ * mainframe.tcl (MainFrame::create): make ttk theme aware
+
+2005-07-27 Jeff Hobbs
+
+ * statusbar.tcl: if themed, use ttk::separator
+ * scrollframe.tcl: if themed, use ttk::frame
+ * font.tcl: if themed, use ttk::comboboxes and ttk::checkbuttons
+ * widget.tcl: encapsulate all .#BWidget* hidden widgets into a
+ single frame .#BWidget to clean up main '.' childspace.
+ Add 'Widget::theme ?boolean?' that, if enabled, has BWidgets try
+ to use some ttk themed widgets (*very* incomplete).
+
+ * init.tcl (Widget::_opt_defaults): make a proc for opt defaults,
+ recognize aqua as a platform
+
+2005-02-25 Jeff Hobbs
+
+ * lang/da.rc (new): Danish language file [Bug 1151534] (elhaard)
+
+2005-01-25 Jeff Hobbs
+
+ * notebook.tcl: reverted lester patch - too many bugs related to
+ deleting and reinsertion of tabs.
+
+2004-12-01 Jeff Hobbs
+
+ * notebook.tcl: speed improvements via array hashing for many tabs
+ (lester).
+
+2004-10-09 Rolf Ade
+
+ * mainframe.tcl: (MainFrame::_parse_accelerator) made
+ accelerator Ctrl-f in -menu definitions work. [Bug 1043107]
+
+2004-09-24 Jeff Hobbs
+
+ * color.tcl: use toplevel instead of menu for dropdown color menu
+ and do better focus/grab restoration.
+
+ * utils.tcl (BWidget::RestoreFocusGrab,SetFocusGrab): add BWidget
+ equivalents of what Tk uses for better stacked grab/focus mgmt.
+
+ * dialog.tcl (Dialog::create): withdraw topleve immediately after
+ creation.
+
+2004-09-14 Jeff Hobbs
+
+ * listbox.tcl: add FocusIn redirector to %W.c, add explicit
+ -takefocus 0 to the frame parent.
+
+ * widget.tcl (Widget::focusPrev): hack to avoid focus into direct
+ parent when it is a megawidget. [Bug 765667]
+
+ * notebook.tcl (NoteBook::_draw_page): adjust height for bottom
+ drawn tabs. [Bug 988628]
+
+2004-09-09 Jeff Hobbs
+
+ * panelframe.tcl (new): new PanelFrame widget which creates a
+ * pkgIndex.tcl: frame with boxed title area that accepts
+ * Makefile.in: additional widgets.
+ * BWman/contents.html:
+ * BWman/navtree.html:
+ * BWman/PanelFrame.html (new):
+
+ * statusbar.tcl: improve init to use bwidget's automated arg
+ passing for subwidgets. Simplify delete subcommand to call remove.
+
+ * xpm2image.tcl (xpm-to-image): correctly recognize None with
+ -nocase
+
+2004-09-02 Jeff Hobbs
+
+ * buttonbox.tcl, combobox.tcl: code safety fixes
+
+ * dialog.tcl: default button width to -11 on Win8.4, 8 otherwise
+
+ * color.tcl, font.tcl, messagedlg.tcl:
+ * passwddlg.tcl, progressdlg.tcl: change dialogs to anchor buttons e
+
+ * statusbar.tcl: better -bg handling (configure too), and tighten
+ up spacing on resize control to place it flush bottom right
+
+2004-09-01 Jeff Hobbs
+
+ * statusbar.tcl: add -showseparator optional horizontal separator.
+
+2004-08-31 Jeff Hobbs
+
+ * statusbar.tcl: correct name of image for use on unix.
+ Try to use of PNG image at each create (it just looks better).
+
+2004-08-26 Jeff Hobbs
+
+ * tree.tcl (Tree::delete): call -selectcommand if we delete
+ something that was selected.
+
+2004-08-25 Jeff Hobbs
+
+ * statusbar.tcl: correct use of PNG vs. GIF image.
+ Don't abort creation of statusbar when gridded - just don't try
+ to resize.
+ Correct example to use label -width 1
+
+2004-08-20 Jeff Hobbs
+
+ * statusbar.tcl (new): Addition of a statusbar container widget
+ * pkgIndex.tcl: with resize control
+ * Makefile.in:
+ * BWman/contents.html:
+ * BWman/navtree.html:
+ * BWman/StatusBar.html (new):
+
+2004-05-12 Jeff Hobbs
+
+ * font.tcl (SelectFont::create): don't hardcode -bd 2 when
+ creating the style selectbuttons.
+
+ * dynhelp.tcl (_show_help): account for OS X help style
+
+2004-05-04 Jeff Hobbs
+
+ * listbox.tcl (_keyboard_navigation): make sure you can see the
+ item that you key navigate to. (aas)
+
+2004-04-26 Jeff Hobbs
+
+ * tree.tcl (_update_nodes): align with _draw_nodes code,
+ specifically correcting placement of cross on new nodes and anchor
+ of changed window/image.
+
+2004-04-23 Jeff Hobbs
+
+ * listbox.tcl (create): don't force -highlightthickness 1 as it
+ prevents the user changing it on creation.
+ (_draw_item): pass more cached info from _redraw_items for speed.
+ (_redraw_selection): correct drawing of selfill for items that
+ extend beyond the width of the window.
+
+2004-04-22 Jeff Hobbs
+
+ * tree.tcl (edit): correct inversion of verifycmd emptiness test.
+ * listbox.tcl: correct eval/after/lists usage.
+ (_redraw_listbox): call _update_select_fill on redraw, otherwise
+ the insert of items causes wonkiness.
+ (_redraw_items): call update idle after changing cursor.
+ (create): Insert $path into the canvas bindings, so that anyone
+ binding directly onto the widget will see their bindings activated
+ when the canvas has focus. Add slightly modified up/down bindings
+ to the canvas, in case it gets the focus (like with -autofocus).
+
+2004-04-21 Jeff Hobbs
+
+ * tree.tcl (_draw_subnodes): Adjust the drawing of the line to the
+ first root node to start at the vertical point (not go up).
+
+ * entry.tcl, arrow.tcl, combobox.tcl: better space/list handling
+
+ * entry.tcl: make the icursor not appear for non-editable and/or
+ state disabled comboboxes.
+
+2004-03-08 Joe English
+
+ * init.tcl: (bugfix) Use <> virtual event instead
+ of event for back-tab binding.
+
+2004-02-07 Jeff Hobbs
+
+ * progressbar.tcl (ProgressBar::_modify): convert rect coords to
+ ints to prevent left-over lines that are likely due to a bug in
+ core Tk related to fractional coord refresh.
+
+2004-02-03 Jeff Hobbs
+
+ * scrollw.tcl (ScrolledWindow::create): correctly set -relief and
+ -bd at creation time. [Bug #873666]
+
+ * init.tcl: don't modify *Listbox.background and *Button.padY
+ options - leave core widgets alone.
+
+ * mainframe.tcl (MainFrame::_create_menubar): set the bg for menus
+ only on unix (otherwise disturbs menu native L&F)
+ Correct some eval/list issues.
+
+ * BWman/MainFrame.html:
+ * mainframe.tcl (MainFrame::_create_entries): correct 'cascade'
+ spelling, but support old 'cascad' as well.
+
+2004-01-28 Reinhard Max
+
+ * configure.in: bumped to v1.7.
+ This should have happened before releasing 1.7.0.
+
+ * Makefile.in: fixed support for DESTDIR.
+
+2004-01-05 Damon Courtney
+
+ * init.tcl: Added a binding to the Tk spinbox to handle
+ traversal as loading BWidgets seems to screw up the default
+ handling for Tk. [Bug #867604]
+
+ * utils.tcl: Fixed a bug that would cause some geometry calculations
+ in BWidget::place to behave incorrectly. This would occasionally
+ make it appear as though a drawn dialog would freeze the application.
+ [Bug #868315]
+
+2003-12-18 Bob Techentin
+
+ **** BWIDGET 1.7.0 TAGGED ****
+
+ * README.txt: Changed revision to 1.7.0. Note that
+ 1.7.0 does not include 2003-11-26 mod to notebook.tcl.
+
+2003-11-26 Jeff Hobbs
+
+ * notebook.tcl (NoteBook::bindtabs): correct tab name returned. (groth)
+
+2003-11-17 Jeff Hobbs
+
+ * entry.tcl (Entry::create): add missing line continuation.
+ [Patch #843932] (oehlmann)
+
+2003-11-10 Damon Courtney
+
+ * entry.tcl: Use a button widget for -disabled options if
+ we're using 8.3 [Bug 839469]
+
+2003-11-05 Damon Courtney
+
+ * combobox.tcl: Fixed dropdown listbox selection for
+ standard Tk listbox [Bug 831496].
+
+2003-11-05 Jeff Hobbs
+
+ * scrollview.tcl (ScrollView::_set_view): correct :canvas to
+ renamed :cmd.
+
+2003-10-30 Jeff Hobbs
+
+ * scrollw.tcl (ScrolledWindow::setwidget): check that the old
+ widget associated still exists before unconfiguring it. [Bug #833034]
+
+2003-10-27 Damon Courtney
+
+ * combobox.tcl, listbox.tcl: Fixed keyboard navigation in the
+ combobox drop down [Bug 831496].
+
+ * listbox.tcl: Added curselection subcommand to mimic Tk listbox
+ behavior.
+
+ Added keyboard navigation to the listbox.
+
+ * widget.tcl: Added Widget::exists command to return whether a
+ widget is a BWidget (based on whether it exists in the _class array).
+
+ Widget::destroy now properly unsets the widget's variable in
+ the _class array.
+
+2003-10-27 Joe English
+ * DragSite.html, DropSite.html: Fix markup errors [Bug #740484]
+
+2003-10-20 Damon Courtney
+ * arrow.tcl, bitmap.tcl, button.tcl, buttonbox.tcl, color.tcl,
+ * combobox.tcl, dialog.tcl, dragsite.tcl, dropsite.tcl, entry.tcl
+ * font.tcl, label.tcl, labelentry.tcl, labelframe.tcl, listbox.tcl
+ * mainframe.tcl, messagedlg.tcl, notebook.tcl, pagesmgr.tcl
+ * panedw.tcl, passwddlg.tcl, progressbar.tcl, progressdlg.tcl
+ * scrollframe.tcl, scrollview.tcl, scrollw.tcl, separator.tcl
+ * spinbox.tcl, titleframe.tcl, tree.tcl, utils.tcl, widget.tcl
+ * xpm2image.tcl: Revamp again to let core Widget commands handle
+ most of the esoteric work of creating and destroying widgets
+ properly in the BWidget environment.
+
+ The command Widget::define defines a class, its filename and a
+ list of classes which it uses. This command handles creating
+ the command to create new widgets, creates a ::use command for
+ the class and calls the ::use command for each class included.
+
+ The command Widget::create does the renaming of the widget to
+ $path:cmd and creates the proc to redirect the widget commands.
+
+ Widget::destroy now does the rename $path "" that almost all
+ widgets do.
+
+ * button.tcl: Added a -state option to configure the state of the
+ entire box at once.
+
+ Added new insert and delete subcommands.
+
+ Added an after cancel to stop button repeat upon release.
+ [Bug 697022]
+
+ * combobox.tcl: Added -bwlistbox, -listboxwidth and -hottrack options.
+ -images option already existed, but now it actually does something.
+
+ Added getlistbox, get, icursor, post and unpost subcommands.
+
+ * dynhelp.tcl: Added add subcommand to replace the (now) deprecated
+ register command. The new command adds for a lot more flexibility
+ in applying dynamic help.
+
+ Help popup now comes up -topmost 1 on Windows if available.
+
+ * entry.tcl: Added -disabledbackground option so that the BWidget
+ entry more closely resembles the standard Tk entry.
+ [Bug 638236].
+
+ * init.tcl: Moved Widget::traverseTo into widget.tcl.
+
+ * label.tcl: Renamed BWLabel class to just Label.
+
+ * listbox.tcl: Added a default -dropcmd so that if -dragenabled
+ and -dropenabled are true, drag-and-drop within the same widget
+ is possible without any other options.
+
+ Added -autofocus option to specify that clicking within the listbox
+ should draw the focus in order to handle mouse wheel events.
+
+ Added -selectfill option for drawing a full selection rectangle
+ around selected items instead of just around the item.
+
+ Added getcanvas subcommand. [Bug 436762].
+
+ bindImage and bindText now map %W to $path in order to get an
+ accurate path in events. This can probably be fixed better
+ when we have more control over event parameters. [Bug 607745]
+
+ Added mouse wheel bindings by default.
+
+ Added <> event when selection changes.
+
+ * mainframe.tcl: Fixed bug for adding CTRL-F items to a mainframe
+ [Bug 784269]
+
+ * messagedlg.tcl: Added -buttonwidth option.
+
+ * notebook.tcl: Added dynamic help to tabs.
+
+ Added -tabpady option to specify the padding between the text and
+ the tab.
+
+ Notebooks now handle multi-line text properly. [Bug 565284]
+
+ * scrollview.tcl: Rewritten to use a variable per path instead of
+ a big array.
+
+ * tree.tcl: Added -anchor option to nodes to specify the anchor for
+ an image or window when displayed.
+
+ Added -crossopenimage, -crosscloseimage, -crossopenbitmap and
+ -crossclosebitmap options to change the open / close cross.
+
+ Added mouse wheel bindings by default.
+
+ Added toggle subcommand to toggle a single tree node.
+
+ Added <> event when selection changes.
+
+ The characters "& | ^ !" are all converted to | silently in
+ node names. This is to avoid errors because these characters
+ are special to the canvas widget. [Bug 746960]
+
+ bindImage and bindText now map %W to $path in order to get an
+ accurate path in events. This can probably be fixed better
+ when we have more control over event parameters. [Bug 607745]
+
+ * utils.tcl: Added BWidget::wrongNumArgsString command to return
+ a standard wrong # args error string.
+
+ Added BWidget::classes command that returns a list of all classes
+ required by a given class.
+
+ Added BWidget::inuse command to determine if a given class is inuse.
+
+ Added BWidget::library command to return a body of code that can
+ be saved into a project or other code based on the given classes.
+ When called with a list of classes, all the classes and code
+ necessary to use those classes is returned in a large string which
+ can then be written out to a file.
+
+ Added BWidget::write command to write to a given file the current
+ set of classes that are in use.
+
+ Added BWidget::bindMouseWheel command to setup default mouse
+ bindings on a given widget.
+
+ * widget.tcl: Added a new option type 'Padding' which will accept
+ the standard padding arguments in Tcl 8.4+.
+
+ Added Widget::define command to define a new BWidget class.
+
+ Added Widget::create command to create a BWidget properly.
+
+ Widget::destroy now attempts to delete a widget command created
+ through Widget::create.
+
+ Added Widget::options command to return the current options of
+ a given widget in a style that can be used to serialize a widget.
+
+ Added Widget::getOption command to get options based on children
+ having the same option.
+
+ * wizard.tcl: Added new Wizard widget.
+
+
+2003-10-17 Jeff Hobbs
+
+ * arrow.tcl, bitmap.tcl, button.tcl, buttonbox.tcl, color.tcl,
+ * combobox.tcl, dialog.tcl, dragsite.tcl, dropsite.tcl, entry.tcl
+ * font.tcl, label.tcl, labelentry.tcl, labelframe.tcl, listbox.tcl
+ * mainframe.tcl, messagedlg.tcl, notebook.tcl, pagesmgr.tcl
+ * panedw.tcl, passwddlg.tcl, progressbar.tcl, progressdlg.tcl
+ * scrollframe.tcl, scrollview.tcl, scrollw.tcl, separator.tcl
+ * spinbox.tcl, titleframe.tcl, tree.tcl, utils.tcl, widget.tcl
+ * xpm2image.tcl: major revamp to reduce incorrect use of eval and
+ other list-safetiness evils. Also change !strcomp to streq.
+
+2003-08-06 Jeff Hobbs
+
+ * listbox.tcl: Correct Listbox selection drawing [Bug #781652]
+
+2003-07-17 Joe English
+ * init.tcl, combobox.tcl: Fix for [Bug 720032] "BWidget
+ breaks Tk entry behaviour". Highlight the entry
+ in a <> binding, instead of doing so
+ on every event. Change the global
+ and bindings to generate <>
+ and <> events.
+
+2003-07-17 Jeff Hobbs
+
+ * notebook.tcl: Use list with eval for safety.
+ Use lsearch -exact instead of default -glob in all uses.
+
+ * listbox.tcl (_multiple_select): correct shift-selection when
+ selectmode is multiple. [Bug 653266]
+ Use lsearch -exact instead of default -glob in all uses.
+ Use list with eval for safety.
+
+ * BWman/ScrolledWindow.html: clarify management of embedded widget.
+
+2003-06-23 Damon Courtney
+ * combobox.tcl: Added a little better handling of keys in the
+ auto-complete.
+
+2003-06-06 Damon Courtney
+ * combobox.tcl: Added a rudimentary auto-complete function
+ with option (-autocomplete) that is turned off by default.
+ Over time, I'm sure this function can be improved, but I
+ think it works pretty well for now.
+
+ * BWman/ComboBox.tcl: Added documentation for -autocomplete.
+
+2003-06-05 Damon Courtney
+ * listbox.tcl: Liberal use of list where appropriate to make
+ the code safe for space-containing node names.
+
+2003-05-23 Bob Techentin
+
+ **** BWIDGET 1.6.0 TAGGED ****
+
+ * README.txt:
+
+2003-05-18 Jeff Hobbs
+
+ * progressbar.tcl: correctly handle progressbar being quickly
+ created and deleted by deleting afters and checking var existence.
+
+2003-05-18 Joe English
+
+ * widget.tcl (Widget::focusOK): Don't assume that '-editable'
+ option is always 1 or 0 for all widgets. [Bug 710658]
+
+2003-05-14 Jeff Hobbs
+
+ * demo/tree.tcl: make the tree scrollview make sense in demo.
+ [Bug 684462]
+
+ * notebook.tcl: ensure that bd is min 1 at all times. [Bug 688227]
+ Correct use of eval with list.
+
+ * tree.tcl: correct node lsearch'ing to use -exact to allow for []
+ containing nodes [Bug 628041] (decoster)
+
+2003-05-07 Jeff Hobbs
+
+ * dynhelp.tcl (DynamicHelp::_motion_balloon): correctly listify
+ after delayed _show_help callback.
+
+2003-05-06 Jeff Hobbs
+
+ * scrollw.tcl (ScrolledWindow::setwidget): remove any existing
+ widget before setting the next.
+
+2003-05-01 Jeff Hobbs
+
+ * tree.tcl (Tree::configure, Tree::_draw_node): add a full-width
+ box underneath the text and image/window that will react to the
+ node binding if -selectfill is true. It is an empty box that is
+ overly wide, but it could be improved to resize on Configure to
+ just the window width and replace the sel box.
+
+2003-04-23 Jeff Hobbs
+
+ * tree.tcl: liberal use of list where appropriate to make the code
+ safe for space-containing node names.
+ Make use of string equal instead of !string compare.
+ (Tree::_redraw_selection): correct -selectfill to include the
+ image, in any, in the bbox calculation since it may be larger.
+
+2003-04-15 Damon Courtney
+
+ * listbox.tcl
+ * tree.tcl: Added a #auto substitution for inserting new items
+ into a tree or listbox.
+
+ * BWman/ListBox.html
+ * BWman/Tree.html: Added documentation for #auto substitution.
+
+2003-04-14 Jeff Hobbs
+
+ * utils.tcl (BWidget::focus): add optional refocus arg
+ * combobox.tcl: make droplist use solid 1-pixel relief more in
+ accordance with Windows style. Set topmost attribute on droplist.
+ Add bindings that unmap the droplist if we lose focus to another
+ application (where [focus] == ""), without refocusing to the entry.
+
+2003-04-11 Jeff Hobbs
+
+ * combobox.tcl (ComboBox::_expand): add tab expansion behavior
+ when -expand tab is specified
+ (ComboBox::_focus_in): autohighlight full contents only when no
+ existing selection exists. [Bug #720024]
+
+ * BWman/ComboBox.html: doc -expand none|tab
+
+2003-03-12 Damon Courtney
+
+ * listbox.tcl: Added dynamic help support to listbox items.
+
+ * tree.tcl: Fixed a little inconsistency in the tree dynamic help.
+ We don't need to save the whole path in the help array, just the
+ node.
+
+2003-02-25 Jeff Hobbs
+
+ * scrollw.tcl: add lock around grid remove scrollbar to prevent
+ infinite loop in small window situations. (kienzle)
+
+ * pkgIndex.tcl:
+ * configure.in: bumped to v1.6
+
+ * scrollw.tcl: complete rewrite of ScrolledWindow widget to
+ address infinite loop scrollbar problems. This one is much
+ simpler and does not suffer the infinite loop. There still seems
+ to be an issue with shrinking smaller than one scrollbar width /
+ height in size, but that's not common (nor fatal). Addresses
+ [Patch #671821, #520903] [Bug #472718, #564691]
+ This may introduce new incompatabilities, but it does work as
+ expected for noted bugs and in the demos.
+
+ * widget.tcl: code cleanup
+ * scrollframe.tcl: code cleanup
+
+2003-02-24 Jeff Hobbs
+
+ * panedw.tcl (_realize): only allow _realize to be called once the
+ Configure binding has triggered once. [Bug #613134]
+ [Patch #63500] (decoster)
+
+2003-02-17 Jeff Hobbs
+
+ * font.tcl: comment out the adding of default style bits for bold
+ and italic. The allows setting the font to something like
+ "Courier 8", clicking B on and off and getting "Courier 8" back
+ again (otherwise gave "Courier 8 normal roman").
+
+2003-02-08 Damon Courtney
+ * BWman/SelectColor.html
+ * color.tcl: Cleaned up some of the documentation of SelectColor
+ and made it actually work like the documentation says it does.
+
+ * BWman/DynamicHelp.html
+ * dynhelp.tcl: Added -topbackground, -padx and -pady options to
+ allow a little more flexibility in the look-and-feel of balloons.
+
+ Added the ability to bind dynamic help to individual items or tags
+ on a canvas.
+
+ * BWman/Tree.html
+ * tree.tcl: Added -padx and -deltax options to individual nodes
+ within a tree. Each option defaults to -1, meaning to take its
+ value from the global option of the same name.
+
+ Added dynamic help to nodes within a tree. Adds the following
+ options: -helptext, -helptype and -helpvar to each node.
+
+ * BWman/BWidget.html
+ * utils.tcl: Added BWidget::badOptionString utility to return a
+ standard error string when a given option doesn't match a list.
+
+ * BWman/Widget.html
+ * widget.tcl: Added Widget::getVariable proc to create a reference
+ to a variable relative to the given widget path.
+
+2003-01-26 Damon Courtney
+ * BWman/DynamicHelp.html:
+ * dynhelp.tcl: Added -state option to disable help balloons on a
+ global scale.
+
+ * BWman/Tree.html:
+ * tree.tcl: Added -crossfill option to allow the + / - bitmap to
+ be filled with a different color than the connecting node lines.
+ -linesfill is now accurate in its help entry and only adjusts
+ the foreground color of the lines between the nodes.
+
+2003-01-24 Joe English
+ * tree.tcl (Tree::delete, Tree::_subdelete): remove all deleted
+ nodes from the the selection [Bug #621178].
+
+2003-01-17 Pat Thoyts
+
+ * labelentry.tcl: fixed -textvariable option [bug #649383]
+
+2002-10-14 Jeff Hobbs
+
+ * pkgIndex.tcl:
+ * configure.in: bump version to 1.5
+
+ * button.tcl: remove -repeatdelay and -repeatinterval for 8.4 to
+ allow Button to override them. [Bug #620103]
+
+ * combobox.tcl: make -entrybg also control the listbox background.
+ [Bug #519189] (chevreux)
+
+ * tree.tcl (_see): change to always show left edge of requested
+ item. [Patch #556077] (english) [NOTE: also included Patch #621331
+ "Allow delete of selected Tree nodes"]
+
+ * dynhelp.tcl: allow variable and balloon help simultaneously.
+ [Patch #567982] (decoster)
+
+ * BWman/LabelFrame.html:
+ * labelframe.tcl: allow -bitmap -image and -textvariable options
+ of the BWLabel component of a LabelFrame. [Patch #620753] (decoster)
+
+ * widget.tcl (_get_tkwidget_options): withdraw toplevel if it is
+ the TkResource base widget. [Patch #620754] (decoster)
+
+ * tree.tcl (delete): correct tree deletion with selected nodes.
+ [Patch #621331] (decoster)
+
+ * progressbar.tcl (_modify): use updated idletasks instead of
+ update. [Patch #622927] (decoster)
+
+2002-09-25 Jeff Hobbs
+
+ * Makefile.in: better DESTDIR/libdir support (steffen)
+
+2002-09-11 Jeff Hobbs
+
+ * color.tcl (SelectColor::menu): added tkwait and update to make
+ sure that the grab doesn't fail on Unix.
+
+ * listbox.tcl: corrected multiple selectmode bindings.
+ [Patch #483838, Bug #594853] (decoster)
+
+2002-08-23 Andreas Kupries
+
+ * tree.tcl: Modified subcommand 'includes' of the method
+ 'selection to properly extract its argument. ... Revamped the
+ whole subcommand to properly extract and check its arguments.
+
+ (create) Added Control-Button-1 bindings to allow toggling the
+ selection of a node. I will do no bindings for shift-selecting
+ and/or drag-selecting ranges. To complex for me right now.
+
+ Moved the code executing the -selectcommand callback to an
+ internal procedure, and added calls to that procedure to all
+ subcommands which change the selection. This fixes SF Bwidget
+ Bug #547245.
+
+ * BWman/Tree.html: Documented the 'includes' and 'range'
+ subcommands of the method 'selection' of tree widgets.
+ Documented the node option '-selectable'. Documented that the
+ subcommands extending or setting the selection silently ignore
+ unselectable nodes. Documented new 'toggle' subcommand of method
+ 'selection'. Documented option --slectcommand'. Fixed bogus
+ table html in option lists.
+
+2002-06-04 Jeff Hobbs
+
+ **** BWIDGET 1.4.1 TAGGED ****
+
+ * README.txt:
+ * configure.in:
+ * pkgIndex.tcl: up'ed version to 1.4.1
+
+ * listbox.tcl: corrected use of 'end' as move index. [Bug #561391]
+ * buttonbox.tcl:
+ * tree.tcl: force frame -padx/-pady to 0 to handle 8.4+ frame
+ padding options. [Bug #545119]
+
+ * scrollframe.tcl: corrected scrollregion configuration on
+ Configure of frame to use full width/height of canvas when the
+ canvas is larger. This ensures that scrolling "anchors" properly
+ to topleft.
+
+ * dialog.tcl: prevent dialog from freezing on Windows with tkwait
+ visibility on withdrawn toplevels. [Patch #521386] (chevreux)
+
+ * font.tcl: reworked loadfont to not sort font names unless
+ requested. [Patch #524353] (kienzle, hobbs)
+
+ * panedw.tcl: corrected handling of weighted panes following a
+ Configure event. [Patch #513320] (decoster)
+
+ * progressbar.tcl: Fixed display of vertical progressbar.
+ [Patch #561403]
+
+2002-05-29 Andreas Kupries
+
+ * combobox.tcl: Changed relief of popup list to ridge, for Win*
+ platforms.
+
+2002-05-09 Andreas Kupries
+
+ * dynhelp.tcl: Accepted patch for bug 528929. Reported by
+ , patch also by him.
+
+2002-04-25 Andreas Kupries
+
+ * notebook.tcl: Accepted patch for bug #532246, fixing the
+ appearance of the tabs so that text is always visible
+ completely.
+
+2002-01-26 Pat Thoyts
+
+ * utils.tcl: Modified BWidget::place to support multiple screens
+ under Windows. Better support would require Tk modifications.
+ * demo/tree.tcl: Fixed for starting on secondary monitor under
+ windows.
+ * BWMan/BWidget.html: added documentation for BWidget::place.
+
+2002-01-22 Jeff Hobbs
+
+ **** BWidget 1.4.0 tagged ****
+
+ * widget.tcl: added Color as an optional type, with _test_color
+ test. [RFE #443124].
+
+2002-01-15 Jeff Hobbs
+
+ * BWman/ComboBox.html: removed reference to label options that
+ were removed when the LabelFrame was dropped. [Bug #477130]
+
+ * listbox.tcl: allowed drop handler to work in empty listbox.
+ [Bug #456883]
+
+ * mainframe.tcl: correct unprotected eval calls. [Patch #501210]
+ (chevreux)
+
+2001-12-28 Jeff Hobbs
+
+ * BWman/Dialog.html:
+ * dialog.tcl: Added '-transient' and '-place' flags.
+ [Patch #483838] (decoster)
+
+ * BWman/Tree.html:
+ * tree.tcl: Added a 'recursive' argument to 'Tree::opentree' and
+ 'Tree::closetree'. [Patch #483838] (decoster)
+
+ * BWman/ProgressBar.html:
+ * progressbar.tcl: Added new type 'nonincremental_infinite' and
+ modified movement of progressbar when in 'infinite' or
+ 'nonincremental_infinite' mode. The 'nonincremental_infinite' can
+ be used when a certain process monitored by a ProgressBar returns
+ a total count and not an increment count. [Patch #483838] (decoster)
+
+ * BWman/PanedWindow.html:
+ * panedw.tcl: Added '-weights' flag with possible value 'extra' or
+ 'available'. Since BWidget-1.3.1, the meaning of the '-weight'
+ flag for the 'PanedWindow::add' command was changed. This made it
+ difficult to create a layout where the panes occupy a certain
+ amount of the screen. When using the '-weights extra' flag when
+ creating a PanedWindow widget, the >=1.3.1 behavior is used: the
+ weights for the different panes are only used for extra space.
+ When using the '-weights available' flag, the weights for the
+ different panes are used to set the size of each panes relative to
+ the total available space. [Patch #483838] (decoster)
+
+ * BWman/ListBox.html:
+ * listbox.tcl: Added '-selectmode' flag and 2 possible
+ select-modes: single and multiple. [Patch #483838] (decoster)
+
+ * widget.tcl: Select element 4 (was 3) from the config-options to
+ get value from optiondb. [Patch #483838] (decoster)
+
+ * utils.tcl: added else case to place is called with location
+ different from 'at' and 'center' and without a parent.
+ [Patch #484123] (decoster)
+
+ * mainframe.tcl: added options -menubarfont, -menuentryfont and
+ -statusbarfont at creation time of the widget as well as
+ subsequent configures. [Patch #479935] (chevreux)
+
+ * listbox.tcl: added multipleinsert command to allow faster
+ inserts of multiple items. [Patch #458446] (chevreux)
+ * widget.tcl: added Widget::copyinit. [Patch #458446] (chevreux)
+
+ * BWman/NoteBook.html:
+ * notebook.tcl: added options for enhanced tab shape in notebooks.
+ [Patch #402466] (haneef)
+
+ * configure.in:
+ * pkgIndex.tcl:
+ * README.txt: bumped version to 1.4.0 (not released)
+
+ * mainframe.tcl (_create_menubar): start tagstate initially on.
+ [Patch #470273] (chevreux)
+ (_parse_accelerator): improve F* function key accelerator support.
+ [Patch #444172] (venski)
+
+2001-10-14 Jeff Hobbs
+
+ * pagesmgr.tcl: reverted fix of 2001-10-11 - it was bogus.
+
+2001-10-11 Jeff Hobbs
+
+ * pagesmgr.tcl: allowed the ability to specify page by name,
+ not just number.
+
+2001-09-11 Andreas Kupries
+
+ * notebook.tcl: Removed 'Canvas' from the list of bindtags for the
+ internal canvas to prevent interference from application
+ specific bindings with our special widget. [459033].
+
+2001-09-06 Andreas Kupries
+
+ * passwddlg.tcl: Accepted change by Bastien Chevreux
+ adding a -logineditable option to
+ the password dialog. [436340].
+
+2001-09-05 Andreas Kupries
+
+ * panedw.tcl: Added option -activator to allow user to choose sash
+ activator. Reduced minimum allowed sash width. [442474]. Request
+ made by Bastien Chevreux .
+
+ * label.tcl: Corrected typo in BWlabel::configure [454505], report
+ and fix by Bastien Chevreux .
+
+ * arrow.tcl: Changed containing frame to be more invisible
+ (borderwidth 0). Fixes [458301], by Georgios Petasis
+ .
+
+2001-08-08 Andreas Kupries
+
+ * tree.tcl (Tree::_keynav): Added code to call the open and close
+ commands when the open-status of a node is toggled with the
+ space bar. Bug [449284].
+
+ * color.tcl: Added the missing definition of the main
+ 'SelectColor' procedure. This prevented users from creating
+ these widgets in the documented way. Bug [449276].
+
+2001-06-21 eric melski
+
+ * tree.tcl: Corrected keyboard navigation so that open/close
+ commands are invoked when right/left arrows are used to open/close
+ nodes, patch from [Bug #435097]. Also corrected keyboard
+ navigation on right arrow press; previously only opened closed
+ nodes that had children, but should always open nodes, regardless
+ of whether it has children.
+
+2001-06-11 Jeff Hobbs
+
+ * pkgIndex.tcl: bumped version to 1.3.1 and added Tk 8.1.1 package
+ require as Tcl 8.1.1 is needed in certain core areas for the new
+ string methods.
+
+ * mainframe.tcl: corrected state interpretation. It doesn't do
+ exact argument matching, but it is consistent with the rest of
+ BWidget. [Bug #224476]
+
+ * demo/demo.tcl: fixed demo script to run when called from
+ another directory
+
+ * messagedlg.tcl: corrected winfo exists call
+
+ * listbox.tcl: fixed string compare call
+
+ * combobox.tcl: added package require Tk 8.3.
+
+ * passwddlg.tcl:
+ * xpm2image.tcl:
+ * mainframe.tcl:
+ * panedw.tcl:
+ * utils.tcl:
+ * entry.tcl:
+ * dynhelp.tcl:
+ * dragsite.tcl:
+ * color.tcl: added braces to expr where appropriate
+
+2000-10-31 Dan Kuchler
+
+ * combobox.tcl: Added the '-exact' option to the 'lsearch'
+ commands in the combobox code so that the correct index
+ of items will be returned even when there are glob/regexp
+ characters.
+
+2000-10-10 Dan Kuchler
+
+ * dynhelp.tcl: Added the '-screen' option to the toplevel that
+ is created to display the help text to fix a bug reported by
+ Tupone Alfredo.
+
+2000-10-01 Eric Melski
+
+ * notebook.tcl: Fixed typo in _draw_page that incorrectly placed
+ images on tabs.
+
+2000-09-17 Eric Melski
+
+ * widget.tcl (_test_boolean): Altered to return strictly 0 or 1
+ (for false and true, respectively), rather than allowing the
+ string booleans (false, true, off, on, etc).
+
+2000-09-07 Sven Delmas
+
+ * mainframe.tcl: Fixed the typo of Alt (Atl) as reported in bug #
+ 6079.
+
+2000-09-05 Eric Melski
+
+ * label.tcl: Corrected bindtags for BWidgets Label components:
+ primary component widget now includes the megawidget pathname in
+ its bindtags list, so that bindings on the megawidget pathname are
+ applied properly.
+
+2000-08-10 Eric Melski
+
+ * widget.tcl: Corrected a problem caused by the destruction of the
+ special .#BWidget* widgets, which are used by BWidgets for some
+ option value validations; formerly, if these were destroyed, it
+ could confuse the BWidgets system's internal state, and creating
+ BWidgets after destroying these helper widgets would throw an error.
+
+2000-06-14 Dan Kuchler
+
+ * dialog.tcl
+ * dropsite.tcl
+ * dynhelp.tcl
+ * scrollview.tcl: Replaced several catch {unset varname} calls with
+ if {[info exists varname]} {unset varname}. This avoids using the
+ catch, and also prevents the ::errorInfo corruption that was happening
+ in BWidgets.
+
+2000-05-14 Dan Kuchler
+
+ * tree.tcl: Fixed a typing error in the Tree::find procedure.
+ The procedure wouldn't work because there was a 'llengh' where there
+ should have been a 'llength'.
+
+2000-05-08 Dan Kuchler
+
+ * titleframe.tcl: Added a '-state' flag that is associated to the
+ state of the label. Now that labels can be disabled (in 8.3 and
+ beyond) this allows for the titleframe to have a disabled appearence.
+
+2000-05-02 Eric Melski
+
+ * tree.tcl: Did some fancy focus footwork [Bug: 4491]. Now you
+ can do this: "Tree .t ; bind .t foo", and it will do
+ the right thing. This will enable the use of proper
+ focus-on-mouse-click bindings for trees, which in turn will fix
+ the focus problem described in 4491. In addition, I added a
+ binding to the canvas widget in the tree that redirects focus when
+ it leaves the canvas and goes to the frame, just in case.
+
+ * dialog.tcl: Added a -geometry option, to allow the specification
+ of geometry for the dialog. No particular care is taken to
+ validate the geometry string, so if it is bogus, you lose. [RFE:
+ 5188].
+
+2000-04-27 Eric Melski
+
+ * entry.tcl: Added smarts to handle Copy for non-editable entries
+ (it should be allowed, but was not previously) [Bug: 3755].
+
+ * notebook.tcl: Small tweaks for placement of images on tabs.
+
+ * combobox.tcl: Added code to ensure that non-editable (but
+ enabled) comboboxes could still be tabbed in to.
+
+2000-04-26 Dan Kuchler
+
+ * button.tcl: Fixed the bindings that get setup on buttons with
+ an underline specified to be case insensitive (i.e if 'A' or 'a'
+ was the underline character, Alt-A and Alt-a would both be bound
+ to the button.
+
+2000-03-29 Sven Delmas
+
+ * tree.tcl: Added protection for the left arrow key click in case
+ we are already at the root node. This used to throw a Tcl error
+ (fixes bug # 4619).
+
+2000-03-20 Eric Melski
+
+ * progressbar.tcl: (configure) Added test for change to -maximum
+ value, so that bar is redrawn if maximum changes. [Bug: 4399].
+
+ * BWman/SpinBox.html: Removed references to -label* options.
+
+ * demo/select.tcl: Removed use of -label* options on ComboBox and
+ SpinBox. [Bug: 4394].
+
+2000-03-14 Eric Melski
+
+ * button.tcl: (configure) replaced several hasChanged calls with
+ one hasChangedX call.
+
+ * dynhelp.tcl: (sethelp) replaced several hasChanged calls with
+ one hasChangedX call.
+
+ * entry.tcl: Replaced stack of hasChanged calls with one
+ hasChangedX (in configure); replaced a couple cget's with
+ getMegawidgetOption's.
+
+ * spinbox.tcl: Updated _test_options to use setMegawidgetOption,
+ and to only do that if it has to, instead of always doing it.
+
+ * tree.tcl: Worked on itemcget; instead of upvar'ing the
+ one-time-use variable, just refer to it directly.
+
+ * widget.tcl: One problem with [set
+ ${class}::${path}:opt($option)] -- if path contains "foo(foo)",
+ the command will choke. Removed that particular
+ micro-optimization. Added setMegawidgetOption to compliment
+ getMegawidgetOption; extended hasChangedX to accept multiple
+ options to check. This allows us to compress stacks of hasChanged
+ calls into a single call (so there's a single function call, and a
+ single upvar...).
+
+2000-03-13 Eric Melski
+
+ * combobox.tcl: Tweaked bg/background options so that button
+ didn't pick up entry background.
+
+ * widget.tcl: Removed dead code; micro-optimizations to initFromODB.
+
+ * tree.tcl: Added option for default -fill of tree nodes on windows.
+
+ * notebook.tcl: Removed commented code.
+
+ * button.tcl:
+ * tree.tcl:
+ * spinbox.tcl:
+ * entry.tcl:
+ * dropsite.tcl:
+ * dragsite.tcl:
+ * arrow.tcl: Replaced selected cget/getoption calls with
+ getMegawidgetOption calls.
+
+ * combobox.tcl: Removed LabelFrame from ComboBox (30% faster).
+
+ * widget.tcl: Added getMegawidgetOption function, which allows
+ direct access to megawidget-specific options (those that do not
+ map to a component widget option). This is dangerous, because it
+ bypasses some checks, and it will only work with options that are
+ specific to the megawidget. However, it is much faster, and
+ enables some functions (like visiblenodes) to be much faster.
+
+ * tree.tcl: Reworked visiblenodes function to do a tree walk to
+ find visible nodes. This is faster and more correct than the
+ previous implementation, which queried all the nodes in the tree
+ for their open bit.
+
+
+2000-03-10 Eric Melski
+
+ * widget.tcl: Replaced an upvar with a direct reference to the
+ variable in initFromODB.
+
+ * dynhelp.tcl: Changed sethelp function to use new hasChangedX
+ function instead of hasChanged, which avoids an unneeded upvar,
+ for a little better speed.
+
+ * button.tcl: Changed to parseArgs/initFromODB format for a small
+ (25%) speedup in creation time.
+
+2000-03-10 Sven Delmas
+
+ * tree.tcl: Changed the allnodes procedure to visiblenodes, and
+ also the mechanism of retrieving those nodes. This took care of
+ the previously required update.
+
+2000-03-09 Eric Melski
+
+ * entry.tcl: Added code to re-sync the -text option with the
+ contents of the entry widget before doing configuration; this
+ fixes [Bug: 4304].
+
+2000-03-09 Sven Delmas
+
+ * tree.tcl: Disabled the update before the find withtag in the
+ allnodes procedure. The nodes are apparently created delayed, so
+ before this procedure is called, the program has to do an
+ update. I don't do this in the procedure anymore, because it
+ caused multiple updates, making the app slower.
+
+2000-03-08 Sven Delmas
+
+ * tree.tcl: The new allnodes procedure was not handling the
+ "current" tag correctly. This is now stripped of.
+
+2000-03-07 Eric Melski
+
+ * button.tcl: Added check for -state flag, to initialize it properly.
+
+ * entry.tcl: Changed to parseArgs/initFromODB format; added check
+ for -text flag to initialize it properly.
+
+ * labelentry.tcl: Changed to use parseArgs/initFromODB format.
+
+2000-03-03 Eric Melski
+
+ * spinbox.tcl: Added a call in setvalue to scan the current value into
+ a float to trim out any 0 padding on the number (otherwise the zero's
+ make it look like octal to tcl, which chokes on numbers > 8)
+
+2000-03-07 Sven Delmas
+
+ * passwddlg.tcl: Reenabled the binding to activate the ok
+ button.
+
+ * dragsite.tcl: I added an extra protection into the _begin_drag
+ procedure to guard against a motion event that (sometimes) arrives
+ before the press event. This fixes bug # 4324.
+
+2000-03-03 Eric Melski
+
+ * spinbox.tcl: Removed LabelFrame from SpinBox (BACKWARDS
+ INCOMPATIBLE) to speed creation; updated configure proc to use
+ hasChangedX instead of hasChanged, as it didn't really need the
+ values of the options it was checking.
+
+2000-03-01 Eric Melski
+
+ * spinbox.tcl: Changed bindings to be on class SpinBox instead of
+ BwSpinBox, and added class SpinBoxEntry to the bindtags of the
+ SpinBox entry component.
+
+ * configure.in:
+ * pkgIndex.tcl: Bumped version to 1.3.0.
+
+ * tree.tcl: Changed focus redirect to use {after idle} to avoid
+ focus loops.
+
+ * label.tcl: Added -bd 0 -highlight... etc to wrapper frame; moved
+ class bindings to the frame instead of the component label.
+
+ * utils.tcl: Added helper function BWidget::refocus, to handle
+ focus redirection calls.
+
+ * spinbox.tcl: Changed focus redirect to use {after idle} to avoid
+ focus loops.
+
+ * combobox.tcl: Changed init to parseArgs/initFromODB style;
+ changed focus redirect to use {after idle} to avoid focus loops.
+
+2000-02-29 Eric Melski
+
+ * widget.tcl: Added bits to handle
+ $path#subclass_that_inherits_from_other_bw_class megawidget names.
+
+ * passwddlg.tcl:
+ * progressdlg.tcl:
+ * progressbar.tcl: Changed init to parseArgs/initFromODB style.
+
+ * pkgIndex.tcl: Changed Label -> BWLabel
+
+ * messagedlg.tcl: Changed initialization to parseArgs/initFromODB
+ style. Changed to use tk_messageBox on UNIX.
+
+ * labelframe.tcl: Updated to use BWLabel instead of Label.
+
+ * labelentry.tcl: Added -class LabelEntry to widget.
+
+ * label.tcl: Changed class name to BWLabel (to avoid option db
+ clashes with tk labels), changed initialization to
+ parseArgs/initFromODB style.
+
+ * init.tcl: dropped obsolete Tree option from init.
+
+ * dialog.tcl: changed initialization to parseArgs/initFromODB style.
+
+ * notebook.tcl: Added -bd 0 -highlightthickness 0 -relief flat to
+ the notebook container frame so geometries are correct.
+
+ * entry.tcl: Fixed a conflict with configuring the Entry -text and
+ textvariables.
+
+ * dialog.tcl: added a -class option to the dialog, to allow the
+ class of the dialog to be set (this enables proper optiondb use
+ for things like the PasswdDlg).
+
+2000-02-28 Eric Melski
+
+ * widget.tcl: Added Widget::varForOption function, which returns a
+ variable name that can be used to trace changes to an option for a
+ particular megawidget (such as the -values option of a combobox).
+
+ * entry.tcl: Made cget -text a little more efficient by
+ shortcircuiting in that case.
+
+ * combobox.tcl: Fixed bug #4248 by making the listbox use a
+ -listvariable instead of trying to micromanage the listbox contents.
+
+ * tests/entry.test: tests for the Entry widget.
+
+ * widget.tcl: minor code cleanup.
+
+ * tree.tcl: Was not getting proper default bg color on Windows,
+ and keyboard navigation was goofy because of internal structure
+ changes.
+
+ * entry.tcl: Fixed an issue with initial foreground color not
+ being picked up correctly.
+
+2000-02-28 Sven Delmas
+
+ * tree.tcl: Added a procedure called "allnodes" to retrieve the
+ names of all currently defined treenodes. Apparently the internal
+ widget structure of tree was changed recently. I adjusted the
+ "allnodes" procedure to that.
+
+2000-02-25 Eric Melski
+
+ * combobox.tcl: Fixed a problem with non-editable comboboxes and
+ selecting values.
+
+ * arrow.tcl:
+ Fixed a problem with the invoke method (doing one too many winfo
+ parents in some cases)
+
+ * button.tcl:
+ * buttonbox.tcl:
+ * combobox.tcl:
+ * dialog.tcl:
+ * dynhelp.tcl:
+ * entry.tcl: (also fixed validation)
+ * label.tcl:
+ * labelframe.tcl:
+ * listbox.tcl:
+ * mainframe.tcl:
+ * notebook.tcl:
+ * pagesmgr.tcl:
+ * panedw.tcl:
+ * progressbar.tcl:
+ * scrollview.tcl:
+ * scrollw.tcl:
+ * separator.tcl:
+ * spinbox.tcl:
+ * titleframe.tcl:
+ * tree.tcl: Updated to new megawidget architecture.
+
+ * widget.tcl: Changed internal architecture. When possible,
+ megawidget options are stored in component widgets instead of in
+ an intermediary array. Also, made use of option database to make
+ megawidget creation more efficient.
+
+2000-02-24 Eric Melski
+
+ * LICENSE.txt: Removed LGPL license; added Tcl-license terms.
+
+2000-02-23 Eric Melski
+
+ * widget.tcl: Replaced _test_boolean function with a more efficient
+ implementation.
+
+2000-02-18 Eric Melski
+
+ * images/target.xbm: Placeholder for actual icon.
+
+ * color.tcl: Change env(BWIDGET_LIBRARY) to ::BWIDGET::LIBRARY;
+ changed proc "dialogue" to "dialog"
+
+ * pkgIndex.tcl: Updated function spec for color.tcl.
+
+ * widget.tcl: Various minor speed tweaks; added a reverse mapping
+ from component widget options -> mega-widget options so that
+ subcget can be faster.
+
+ * entry.tcl:
+ * dropsite.tcl:
+ * dragsite.tcl:
+ * arrow.tcl: Tcl list'd the specs for Widget::declare calls.
+
+ * combobox.tcl: Removed extraneous ListBox::use call.
+
+
+2000-02-17 Eric Melski
+
+ * notebook.tcl: Added an extra check to move the leftmost tab a
+ touch to the right when it is not selected (again, to make the
+ tabs more Windows-like). Also replaced redundant [string equal]
+ checks with a stored pre-check (ie, set foo [string equal ...]).
+
+2000-02-16 Eric Melski
+
+ * notebook.tcl: Changed appearance of tabs; leftmost tab is now
+ flush with the left of the notebook, and the tabs look more
+ Windows-like.
+
+2000-02-16 Sven Delmas
+
+ * dialog.tcl: Added a new parameter to the draw procedure that
+ allows me to pass in the desired geometry for the window. This was
+ needed to support tracking of dialog window geometries.
+
+ * tree.tcl: Changed the binding to use "+", so it
+ will not overwrite existing bindings (if there are any). Also
+ added some extra protection in the keynav procedure against the
+ user typing on a root node (this used to cause a stack
+ trace).
+
+2000-02-11 Eric Melski
+
+ * tree.tcl: Integrated changes from Eric Boudaillier:
+ [itemconfigure -open ...]
+ optimized to only call redraw_idle 3 if node has subnodes.
+ _cross_event:
+ itemconfigure -open called before -opencmd/closecmd; no more
+ call to _redraw_idle (handled by other procedures)
+ _over_cmd:
+ allow position {root 0} when tree is empty
+ new [find] command:
+ [find @x,y ?confine?]
+ if confine is "confine" returns the node at window
+ coordinate x,y (x,y must be inside the bbox of the
+ node) else returns the node found on the line (in
+ pixel) pixel y
+ [find line]
+ returns the node on the line $line (in -deltay coords)
+ new [line] command:
+ [line node]
+ returns the line where node is drawn
+ -selectfill option added:
+ if true, selection is draw on full width of tree (instead of
+ just highlighting the bbox of the selected nodes)
+
+ * combobox.tcl: Integrated changes from Eric Boudaillier:
+ internal widget restructuring.
+
+ * tree.tcl: Added "range" subcommand to selection. Given two
+ nodes, node1 and node2, it will set the selection to the visible
+ nodes between (and including) node1 and node2. If node1 or node2
+ is not visible, it will find the first visible ancestor of the
+ node and use that as the start/end point instead.
+
+ * listbox.tcl: Integrated changes from Eric Boudaillier:
+ _over_cmd: allow position 0 when listbox is empty
+ find command, similar to tree find command.
+
+ * spinbox.tcl: Integrated changes from Eric Boudaillier:
+ cosmetic changes.
+
+ * color.tcl: Integrated changes from Eric Boudaillier:
+ split widget into two commands: SelectColor::menu and
+ SelectColor::dialog.
+
+ * progressbar.tcl: Integrated changes from Eric Boudaillier:
+ added -idle option to prevent call to update in case where task is
+ done in idle (ie, fileevents)
+
+ * scrollview.tcl: Integrated changes from Eric Boudaillier:
+ bindings changed.
+
+ * scrollw.tcl: Integrated changes from Eric Boudaillier:
+ -managed option: if true, scrollbar are managed during creation,
+ so their size are included in the requested size of the
+ ScrolledWindow. If false, they are not.
+ -sides option: specifies the side of the scrollbar.
+ -size option: specifies size of scrollbar.
+ -ipad option: specifies pad between scrollbar and scrolled widget.
+
+ * mainframe.tcl: Integrated changes from Eric Boudaillier: support
+ for function keys in accelerators, support for no modifier in
+ accelerators.
+
+ * notebook.tcl: Integrated changes from Eric Boudaillier:
+ -internalborderwidth (-ibd) option specifies pad around pages;
+ -foreground, -background, -activeforeground, -activebackground,
+ -disabledforeground options for each tab.
+ Code cleanup.
+
+1999-12-23 Sven Delmas
+
+ * scrollw.tcl: Added "update idletask" to scrollbar update to
+ prevent loss of update events.
+
+1999-12-14 Sven Delmas
+
+ * combobox.tcl: When the selected item is changed, the selection
+ is now set to the entire string.
+
+1999-12-13 Eric Melski
+
+ * buttonbox.tcl: Added a getbuttonstate function, which retrieves
+ the value of a tag used on a button in the buttonbox.
+
+1999-12-08 Eric Melski
+
+ * combobox.tcl: Removed code that cleared entry selection on focus out
+ events, as this crippled exportselection.
+
+1999-10-29 Eric Melski
+
+ * buttonbox.tcl: Added a gettags function, which allows the user
+ to query the tags that are used on buttons in the buttonbox.
+
+1999-10-29 Eric Melski
+
+ * font.tcl: Added one new flag: -querysystem. This lets the user
+ control whether the font selector queries the system
+ (via font families) for the list of fonts, or if it uses a preset
+ list of fonts (which is much faster and less likely to crash some
+ systems).
+
+1999-10-25 Eric Melski
+
+ * font.tcl: Added support for two new flags: -families and -styles;
+ -families allows you to specify one of all, fixed, or variable, to
+ limit the choice of fonts to those fonts; -styles allows you to
+ specify a list of styles that can be set with the widget (ie,
+ bold, italic, etc).
+
+1999-10-22 Eric Melski
+
+ * tree.tcl: Fixed some problems with keyboard traversal. Added
+ support for left/right arrows a la MS Explorer.
+ Added support for keyboard-based scrolling.
+
+1999-10-21 Sven Delmas
+
+ * combobox.tcl: Added support for keyboard traversal. The widget
+ will now tab in even when it is not editable. Also the entry
+ widget content will be selected when the user tabs in. The key
+ bindings now allow a traversal of the list ( brings up the
+ list). The arrow button no longer switches to an up button, but
+ instead changes relief. The button is now more Windows NT like
+ (for Windows NT). Changed keyboard bindings: down/up now
+ display/hide the listbox; control-{up|down|prev|next} move through
+ the options without displaying the listbox.
+
+1999-10-21 Eric Melski
+
+ * tree.tcl: Added a -selectable option to tree nodes, which
+ controls whether or not a given node is selectable (duh). This
+ works with the new -selectcommand option for the tree, and with
+ keyboard traversal (also new). Now, whenever the tree gets a
+ "selection set", it calls the given -selectcommand with the name
+ of the tree and the list of selected nodes, which makes it easier
+ to just drop in place and use.
+
+1999-10-15 Eric Melski
+
+ * panedw.tcl: Added a -class PanedWindow option to the main frame
+ (the megawidget) of the paned window.
+
+1999-10-15 Eric Melski
+
+ * dialog.tcl: Added an overrideredirect option to Dialog::draw, which
+ allows the user to control the overrideredirect state of the dialog.
+
+1999-09-19 Eric Melski
+
+ * mainframe.tcl: Fixed _destroy to unset ALL state variables, so that
+ when a new MainFrame of the same name as an old one is created, it
+ doesn't pick up residual state from the old one.
+
+1999-09-17 Eric Melski
+
+ * notebook.tcl: Added some (non-functional) code for doing
+ tab-notebooks with the tabs on the bottom.
+
diff --git a/lib/bwidget/LICENSE.txt b/lib/bwidget/LICENSE.txt
new file mode 100644
index 0000000..1e30109
--- /dev/null
+++ b/lib/bwidget/LICENSE.txt
@@ -0,0 +1,41 @@
+BWidget ToolKit
+Copyright (c) 1998-1999 UNIFIX.
+Copyright (c) 2001-2002 ActiveState Corp.
+
+The following terms apply to all files associated with the software
+unless explicitly disclaimed in individual files.
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
+FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
+DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
+IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
+NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+MODIFICATIONS.
+
+GOVERNMENT USE: If you are acquiring this software on behalf of the
+U.S. government, the Government shall have only "Restricted Rights"
+in the software and related documentation as defined in the Federal
+Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
+are acquiring the software on behalf of the Department of Defense, the
+software shall be classified as "Commercial Computer Software" and the
+Government shall have only "Restricted Rights" as defined in Clause
+252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
+authors grant the U.S. Government and others acting in its behalf
+permission to use and distribute the software in accordance with the
+terms specified in this license.
diff --git a/lib/bwidget/README.txt b/lib/bwidget/README.txt
new file mode 100644
index 0000000..f1ee5aa
--- /dev/null
+++ b/lib/bwidget/README.txt
@@ -0,0 +1,127 @@
+BWidget ToolKit 1.9.0 July 2009
+Copyright (c) 1998-1999 UNIFIX.
+Copyright (c) 2001-2002 ActiveState Corp.
+
+See the file LICENSE.txt for license info (uses Tcl's BSD-style license).
+
+--------------------------------------------------------------------------
+
+WHAT IS BWIDGET ?
+
+The BWidget Toolkit is a high-level Widget Set for Tcl/Tk built using
+native Tcl/Tk 8.x namespaces.
+
+The BWidgets have a professional look&feel as in other well known
+Toolkits (Tix or Incr Widgets), but the concept is radically different
+because everything is pure Tcl/Tk. No platform dependencies, and no
+compiling required. The code is 100% Pure Tcl/Tk.
+
+The BWidget library was originally developed by UNIFIX Online, and
+released under both the GNU Public License and the Tcl license.
+BWidget is now maintained as a community project, hosted by
+Sourceforge. Scores of fixes and enhancements have been added by
+community developers. See the ChangeLog file for details.
+
+--------------------------------------------------------------------------
+
+WIDGET LIST (1.9)
+
+Simple Widgets
+ Label Extended Label widget
+ Entry Extended Entry widget
+ Button Extended Button widget
+ ArrowButton Button widget with an arrow shape.
+ ProgressBar Progress indicator widget
+ ScrollView Display the visible area of a scrolled window
+ Separator 3D separator widget
+
+Manager Widgets
+ MainFrame Manage toplevel with menu, toolbar and statusbar
+ LabelFrame Frame with a Label
+ TitleFrame Frame with a title
+ ScrolledWindow Generic scrolled widget
+ ScrollableFrame Scrollable frame containing widget
+ PanedWindow Tiled layout manager widget
+ ButtonBox Set of buttons with horizontal or vertical layout
+ PagesManager Pages manager widget
+ NoteBook Notebook manager widget
+ Dialog Dialog abstraction with custom buttons
+
+Composite Widgets
+ LabelEntry LabelFrame containing an Entry widget.
+ ComboBox ComboBox widget
+ SpinBox SpinBox widget
+ Tree Tree widget
+ ListBox ListBox widget
+ MessageDlg Message dialog box
+ ProgressDlg Progress indicator dialog box
+ PasswdDlg Login/Password dialog box (contributed by Stephane Lavirotte)
+ SelectFont Font selection widget
+ SelectColor Color selection widget
+
+Commands Classes
+ Widget The Widget base class
+ DynamicHelp Provide help to Tk widget or BWidget
+ DragSite Commands set for Drag facilities
+ DropSite Commands set for Drop facilities
+ BWidget Utilities
+
+--------------------------------------------------------------------------
+INSTALLATION AND USE
+
+- On Unix Platform:
+ Uncompress the file BWidget-.tar.Z|gz
+
+ To use the BWidget:
+ - If you have uncompressed the archive file under the Tcl Library Path
+ directory, you only need to do:
+ % package require BWidget
+ - If not, you have to specify the BWidget installation path in auto_path
+ global variable:
+ % lappend auto_path
+ % package require BWidget
+
+ To launch the demo, you need to cd into the demo subdirectory:
+ $ cd /demo
+ $ wish demo.tcl
+
+- On Windows and others Platforms:
+ Uncompress the file BWidget-.zip
+
+ To use the BWidget:
+ - If you uncompressed the archive file under the Tcl Library Path
+ directory, you only need to do:
+ % package require BWidget
+ - If not, you have to specify the BWidget installation path in auto_path
+ global variable:
+ % lappend auto_path your_path
+ % package require BWidget
+
+ To launch the demo :
+ Double click on demo.tcl in the demo subdirectory
+
+
+Distribution contains these directories:
+
+BWidget- Root directory and BWidget Tcl sources
+ BWman HTML manual pages
+ images images used by BWidget
+ lang Resources for language customization
+ demo Demo sources
+ tests BWidgets test suite
+
+
+--------------------------------------------------------------------------
+
+DOCUMENTATION
+
+HTML manual pages are available in the BWman subdirectory. Point to
+index.html for frame version with tree navigation, or to contents.html
+for no frame version.
+
+--------------------------------------------------------------------------
+
+CONTACTS
+
+The BWidget toolkit is maintained on Sourceforge, at
+http://www.sourceforge.net/projects/tcllib/
diff --git a/lib/bwidget/arrow.tcl b/lib/bwidget/arrow.tcl
new file mode 100644
index 0000000..e51753a
--- /dev/null
+++ b/lib/bwidget/arrow.tcl
@@ -0,0 +1,551 @@
+# ------------------------------------------------------------------------------
+# arrow.tcl
+# This file is part of Unifix BWidget Toolkit
+# ------------------------------------------------------------------------------
+# Index of commands:
+# Public commands
+# - ArrowButton::create
+# - ArrowButton::configure
+# - ArrowButton::cget
+# - ArrowButton::invoke
+# Private commands (redraw commands)
+# - ArrowButton::_redraw
+# - ArrowButton::_redraw_state
+# - ArrowButton::_redraw_relief
+# - ArrowButton::_redraw_whole
+# Private commands (event bindings)
+# - ArrowButton::_destroy
+# - ArrowButton::_enter
+# - ArrowButton::_leave
+# - ArrowButton::_press
+# - ArrowButton::_release
+# - ArrowButton::_repeat
+# ------------------------------------------------------------------------------
+
+namespace eval ArrowButton {
+ Widget::define ArrowButton arrow DynamicHelp
+
+ Widget::tkinclude ArrowButton button .c \
+ include [list \
+ -borderwidth -bd \
+ -relief -highlightbackground \
+ -highlightcolor -highlightthickness -takefocus]
+
+ Widget::declare ArrowButton [list \
+ [list -type Enum button 0 [list arrow button]] \
+ [list -dir Enum top 0 [list top bottom left right]] \
+ [list -width Int 15 0 "%d >= 0"] \
+ [list -height Int 15 0 "%d >= 0"] \
+ [list -ipadx Int 0 0 "%d >= 0"] \
+ [list -ipady Int 0 0 "%d >= 0"] \
+ [list -clean Int 2 0 "%d >= 0 && %d <= 2"] \
+ [list -activeforeground TkResource "" 0 button] \
+ [list -activebackground TkResource "" 0 button] \
+ [list -disabledforeground TkResource "" 0 button] \
+ [list -foreground TkResource "" 0 button] \
+ [list -background TkResource "" 0 button] \
+ [list -state TkResource "" 0 button] \
+ [list -troughcolor TkResource "" 0 scrollbar] \
+ [list -arrowbd Int 1 0 "%d >= 0 && %d <= 2"] \
+ [list -arrowrelief Enum raised 0 [list raised sunken]] \
+ [list -command String "" 0] \
+ [list -armcommand String "" 0] \
+ [list -disarmcommand String "" 0] \
+ [list -repeatdelay Int 0 0 "%d >= 0"] \
+ [list -repeatinterval Int 0 0 "%d >= 0"] \
+ [list -fg Synonym -foreground] \
+ [list -bg Synonym -background] \
+ ]
+ DynamicHelp::include ArrowButton balloon
+
+ bind BwArrowButtonC {ArrowButton::_enter %W}
+ bind BwArrowButtonC {ArrowButton::_leave %W}
+ bind BwArrowButtonC {ArrowButton::_press %W}
+ bind BwArrowButtonC {ArrowButton::_release %W}
+ bind BwArrowButtonC {ArrowButton::invoke %W; break}
+ bind BwArrowButtonC {ArrowButton::invoke %W; break}
+ bind BwArrowButton {ArrowButton::_redraw_whole %W %w %h}
+ bind BwArrowButton {ArrowButton::_destroy %W}
+
+ variable _grab
+ variable _moved
+
+ array set _grab {current "" pressed "" oldstate "normal" oldrelief ""}
+}
+
+
+# -----------------------------------------------------------------------------
+# Command ArrowButton::create
+# -----------------------------------------------------------------------------
+proc ArrowButton::create { path args } {
+ # Initialize configuration mappings and parse arguments
+ array set submaps [list ArrowButton [list ] .c [list ]]
+ array set submaps [Widget::parseArgs ArrowButton $args]
+
+ # Create the class frame (so we can do the option db queries)
+ frame $path -class ArrowButton -borderwidth 0 -highlightthickness 0
+ Widget::initFromODB ArrowButton $path $submaps(ArrowButton)
+
+ # Create the canvas with the initial options
+ eval [list canvas $path.c] $submaps(.c)
+
+ # Compute the width and height of the canvas from the width/height
+ # of the ArrowButton and the borderwidth/hightlightthickness.
+ set w [Widget::getMegawidgetOption $path -width]
+ set h [Widget::getMegawidgetOption $path -height]
+ set bd [Widget::cget $path -borderwidth]
+ set ht [Widget::cget $path -highlightthickness]
+ set pad [expr {2*($bd+$ht)}]
+
+ $path.c configure -width [expr {$w-$pad}] -height [expr {$h-$pad}]
+ bindtags $path [list $path BwArrowButton [winfo toplevel $path] all]
+ bindtags $path.c [list $path.c BwArrowButtonC [winfo toplevel $path.c] all]
+ pack $path.c -expand yes -fill both
+
+ DynamicHelp::sethelp $path $path.c 1
+
+ set ::ArrowButton::_moved($path) 0
+
+ return [Widget::create ArrowButton $path]
+}
+
+
+# -----------------------------------------------------------------------------
+# Command ArrowButton::configure
+# -----------------------------------------------------------------------------
+proc ArrowButton::configure { path args } {
+ set res [Widget::configure $path $args]
+
+ set ch1 [expr {[Widget::hasChanged $path -width w] |
+ [Widget::hasChanged $path -height h] |
+ [Widget::hasChanged $path -borderwidth bd] |
+ [Widget::hasChanged $path -highlightthickness ht]}]
+ set ch2 [expr {[Widget::hasChanged $path -type val] |
+ [Widget::hasChanged $path -ipadx val] |
+ [Widget::hasChanged $path -ipady val] |
+ [Widget::hasChanged $path -arrowbd val] |
+ [Widget::hasChanged $path -clean val] |
+ [Widget::hasChanged $path -dir val]}]
+
+ if { $ch1 } {
+ set pad [expr {2*($bd+$ht)}]
+ $path.c configure \
+ -width [expr {$w-$pad}] -height [expr {$h-$pad}] \
+ -borderwidth $bd -highlightthickness $ht
+ set ch2 1
+ }
+ if { $ch2 } {
+ _redraw_whole $path [winfo width $path] [winfo height $path]
+ } else {
+ _redraw_relief $path
+ _redraw_state $path
+ }
+ DynamicHelp::sethelp $path $path.c
+
+ return $res
+}
+
+
+# -----------------------------------------------------------------------------
+# Command ArrowButton::cget
+# -----------------------------------------------------------------------------
+proc ArrowButton::cget { path option } {
+ return [Widget::cget $path $option]
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::invoke
+# ------------------------------------------------------------------------------
+proc ArrowButton::invoke { path } {
+ if { ![string equal [winfo class $path] "ArrowButton"] } {
+ set path [winfo parent $path]
+ }
+ if { ![string equal [Widget::getoption $path -state] "disabled"] } {
+ set oldstate [Widget::getoption $path -state]
+ if { [string equal [Widget::getoption $path -type] "button"] } {
+ set oldrelief [Widget::getoption $path -relief]
+ configure $path -state active -relief sunken
+ } else {
+ set oldrelief [Widget::getoption $path -arrowrelief]
+ configure $path -state active -arrowrelief sunken
+ }
+ update idletasks
+ if {[llength [set cmd [Widget::getoption $path -armcommand]]]} {
+ uplevel \#0 $cmd
+ }
+ after 10
+ if { [string equal [Widget::getoption $path -type] "button"] } {
+ configure $path -state $oldstate -relief $oldrelief
+ } else {
+ configure $path -state $oldstate -arrowrelief $oldrelief
+ }
+ if {[llength [set cmd [Widget::getoption $path -disarmcommand]]]} {
+ uplevel \#0 $cmd
+ }
+ if {[llength [set cmd [Widget::getoption $path -command]]]} {
+ uplevel \#0 $cmd
+ }
+ }
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::_redraw
+# ------------------------------------------------------------------------------
+proc ArrowButton::_redraw { path width height } {
+ variable _moved
+
+ set _moved($path) 0
+ set type [Widget::getoption $path -type]
+ set dir [Widget::getoption $path -dir]
+ set bd [expr {[$path.c cget -borderwidth] + [$path.c cget -highlightthickness] + 1}]
+ set clean [Widget::getoption $path -clean]
+ if { [string equal $type "arrow"] } {
+ if { [set id [$path.c find withtag rect]] == "" } {
+ $path.c create rectangle $bd $bd [expr {$width-$bd-1}] [expr {$height-$bd-1}] -tags rect
+ } else {
+ $path.c coords $id $bd $bd [expr {$width-$bd-1}] [expr {$height-$bd-1}]
+ }
+ $path.c lower rect
+ set arrbd [Widget::getoption $path -arrowbd]
+ set bd [expr {$bd+$arrbd-1}]
+ } else {
+ $path.c delete rect
+ }
+ # w and h are max width and max height of arrow
+ set w [expr {$width - 2*([Widget::getoption $path -ipadx]+$bd)}]
+ set h [expr {$height - 2*([Widget::getoption $path -ipady]+$bd)}]
+
+ if { $w < 2 } {set w 2}
+ if { $h < 2 } {set h 2}
+
+ if { $clean > 0 } {
+ # arrange for base to be odd
+ if { [string equal $dir "top"] || [string equal $dir "bottom"] } {
+ if { !($w % 2) } {
+ incr w -1
+ }
+ if { $clean == 2 } {
+ # arrange for h = (w+1)/2
+ set h2 [expr {($w+1)/2}]
+ if { $h2 > $h } {
+ set w [expr {2*$h-1}]
+ } else {
+ set h $h2
+ }
+ }
+ } else {
+ if { !($h % 2) } {
+ incr h -1
+ }
+ if { $clean == 2 } {
+ # arrange for w = (h+1)/2
+ set w2 [expr {($h+1)/2}]
+ if { $w2 > $w } {
+ set h [expr {2*$w-1}]
+ } else {
+ set w $w2
+ }
+ }
+ }
+ }
+
+ set x0 [expr {($width-$w)/2}]
+ set y0 [expr {($height-$h)/2}]
+ set x1 [expr {$x0+$w-1}]
+ set y1 [expr {$y0+$h-1}]
+
+ switch $dir {
+ top {
+ set xd [expr {($x0+$x1)/2}]
+ if { [set id [$path.c find withtag poly]] == "" } {
+ $path.c create polygon $x0 $y1 $x1 $y1 $xd $y0 -tags poly
+ } else {
+ $path.c coords $id $x0 $y1 $x1 $y1 $xd $y0
+ }
+ if { [string equal $type "arrow"] } {
+ if { [set id [$path.c find withtag bot]] == "" } {
+ $path.c create line $x0 $y1 $x1 $y1 $xd $y0 -tags bot
+ } else {
+ $path.c coords $id $x0 $y1 $x1 $y1 $xd $y0
+ }
+ if { [set id [$path.c find withtag top]] == "" } {
+ $path.c create line $x0 $y1 $xd $y0 -tags top
+ } else {
+ $path.c coords $id $x0 $y1 $xd $y0
+ }
+ $path.c itemconfigure top -width $arrbd
+ $path.c itemconfigure bot -width $arrbd
+ } else {
+ $path.c delete top
+ $path.c delete bot
+ }
+ }
+ bottom {
+ set xd [expr {($x0+$x1)/2}]
+ if { [set id [$path.c find withtag poly]] == "" } {
+ $path.c create polygon $x1 $y0 $x0 $y0 $xd $y1 -tags poly
+ } else {
+ $path.c coords $id $x1 $y0 $x0 $y0 $xd $y1
+ }
+ if { [string equal $type "arrow"] } {
+ if { [set id [$path.c find withtag top]] == "" } {
+ $path.c create line $x1 $y0 $x0 $y0 $xd $y1 -tags top
+ } else {
+ $path.c coords $id $x1 $y0 $x0 $y0 $xd $y1
+ }
+ if { [set id [$path.c find withtag bot]] == "" } {
+ $path.c create line $x1 $y0 $xd $y1 -tags bot
+ } else {
+ $path.c coords $id $x1 $y0 $xd $y1
+ }
+ $path.c itemconfigure top -width $arrbd
+ $path.c itemconfigure bot -width $arrbd
+ } else {
+ $path.c delete top
+ $path.c delete bot
+ }
+ }
+ left {
+ set yd [expr {($y0+$y1)/2}]
+ if { [set id [$path.c find withtag poly]] == "" } {
+ $path.c create polygon $x1 $y0 $x1 $y1 $x0 $yd -tags poly
+ } else {
+ $path.c coords $id $x1 $y0 $x1 $y1 $x0 $yd
+ }
+ if { [string equal $type "arrow"] } {
+ if { [set id [$path.c find withtag bot]] == "" } {
+ $path.c create line $x1 $y0 $x1 $y1 $x0 $yd -tags bot
+ } else {
+ $path.c coords $id $x1 $y0 $x1 $y1 $x0 $yd
+ }
+ if { [set id [$path.c find withtag top]] == "" } {
+ $path.c create line $x1 $y0 $x0 $yd -tags top
+ } else {
+ $path.c coords $id $x1 $y0 $x0 $yd
+ }
+ $path.c itemconfigure top -width $arrbd
+ $path.c itemconfigure bot -width $arrbd
+ } else {
+ $path.c delete top
+ $path.c delete bot
+ }
+ }
+ right {
+ set yd [expr {($y0+$y1)/2}]
+ if { [set id [$path.c find withtag poly]] == "" } {
+ $path.c create polygon $x0 $y1 $x0 $y0 $x1 $yd -tags poly
+ } else {
+ $path.c coords $id $x0 $y1 $x0 $y0 $x1 $yd
+ }
+ if { [string equal $type "arrow"] } {
+ if { [set id [$path.c find withtag top]] == "" } {
+ $path.c create line $x0 $y1 $x0 $y0 $x1 $yd -tags top
+ } else {
+ $path.c coords $id $x0 $y1 $x0 $y0 $x1 $yd
+ }
+ if { [set id [$path.c find withtag bot]] == "" } {
+ $path.c create line $x0 $y1 $x1 $yd -tags bot
+ } else {
+ $path.c coords $id $x0 $y1 $x1 $yd
+ }
+ $path.c itemconfigure top -width $arrbd
+ $path.c itemconfigure bot -width $arrbd
+ } else {
+ $path.c delete top
+ $path.c delete bot
+ }
+ }
+ }
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::_redraw_state
+# ------------------------------------------------------------------------------
+proc ArrowButton::_redraw_state { path } {
+ set state [Widget::getoption $path -state]
+ if { [string equal [Widget::getoption $path -type] "button"] } {
+ switch $state {
+ normal {set bg -background; set fg -foreground}
+ active {set bg -activebackground; set fg -activeforeground}
+ disabled {set bg -background; set fg -disabledforeground}
+ }
+ set fg [Widget::getoption $path $fg]
+ $path.c configure -background [Widget::getoption $path $bg]
+ $path.c itemconfigure poly -fill $fg -outline $fg
+ } else {
+ switch $state {
+ normal {set stipple ""; set bg [Widget::getoption $path -background] }
+ active {set stipple ""; set bg [Widget::getoption $path -activebackground] }
+ disabled {set stipple gray50; set bg black }
+ }
+ set thrc [Widget::getoption $path -troughcolor]
+ $path.c configure -background [Widget::getoption $path -background]
+ $path.c itemconfigure rect -fill $thrc -outline $thrc
+ $path.c itemconfigure poly -fill $bg -outline $bg -stipple $stipple
+ }
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::_redraw_relief
+# ------------------------------------------------------------------------------
+proc ArrowButton::_redraw_relief { path } {
+ variable _moved
+
+ if { [string equal [Widget::getoption $path -type] "button"] } {
+ if { [string equal [Widget::getoption $path -relief] "sunken"] } {
+ if { !$_moved($path) } {
+ $path.c move poly 1 1
+ set _moved($path) 1
+ }
+ } else {
+ if { $_moved($path) } {
+ $path.c move poly -1 -1
+ set _moved($path) 0
+ }
+ }
+ } else {
+ set col3d [BWidget::get3dcolor $path [Widget::getoption $path -background]]
+ switch [Widget::getoption $path -arrowrelief] {
+ raised {set top [lindex $col3d 1]; set bot [lindex $col3d 0]}
+ sunken {set top [lindex $col3d 0]; set bot [lindex $col3d 1]}
+ }
+ $path.c itemconfigure top -fill $top
+ $path.c itemconfigure bot -fill $bot
+ }
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::_redraw_whole
+# ------------------------------------------------------------------------------
+proc ArrowButton::_redraw_whole { path width height } {
+ _redraw $path $width $height
+ _redraw_relief $path
+ _redraw_state $path
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::_enter
+# ------------------------------------------------------------------------------
+proc ArrowButton::_enter { path } {
+ variable _grab
+ set path [winfo parent $path]
+ set _grab(current) $path
+ if { ![string equal [Widget::getoption $path -state] "disabled"] } {
+ set _grab(oldstate) [Widget::getoption $path -state]
+ configure $path -state active
+ if { $_grab(pressed) == $path } {
+ if { [string equal [Widget::getoption $path -type] "button"] } {
+ set _grab(oldrelief) [Widget::getoption $path -relief]
+ configure $path -relief sunken
+ } else {
+ set _grab(oldrelief) [Widget::getoption $path -arrowrelief]
+ configure $path -arrowrelief sunken
+ }
+ }
+ }
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::_leave
+# ------------------------------------------------------------------------------
+proc ArrowButton::_leave { path } {
+ variable _grab
+ set path [winfo parent $path]
+ set _grab(current) ""
+ if { ![string equal [Widget::getoption $path -state] "disabled"] } {
+ configure $path -state $_grab(oldstate)
+ if { $_grab(pressed) == $path } {
+ if { [string equal [Widget::getoption $path -type] "button"] } {
+ configure $path -relief $_grab(oldrelief)
+ } else {
+ configure $path -arrowrelief $_grab(oldrelief)
+ }
+ }
+ }
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::_press
+# ------------------------------------------------------------------------------
+proc ArrowButton::_press { path } {
+ variable _grab
+ set path [winfo parent $path]
+ if { ![string equal [Widget::getoption $path -state] "disabled"] } {
+ set _grab(pressed) $path
+ if { [string equal [Widget::getoption $path -type] "button"] } {
+ set _grab(oldrelief) [Widget::getoption $path -relief]
+ configure $path -relief sunken
+ } else {
+ set _grab(oldrelief) [Widget::getoption $path -arrowrelief]
+ configure $path -arrowrelief sunken
+ }
+ if {[llength [set cmd [Widget::getoption $path -armcommand]]]} {
+ uplevel \#0 $cmd
+ if { [set delay [Widget::getoption $path -repeatdelay]] > 0 ||
+ [set delay [Widget::getoption $path -repeatinterval]] > 0 } {
+ after $delay [list ArrowButton::_repeat $path]
+ }
+ }
+ }
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::_release
+# ------------------------------------------------------------------------------
+proc ArrowButton::_release { path } {
+ variable _grab
+ set path [winfo parent $path]
+ if { $_grab(pressed) == $path } {
+ set _grab(pressed) ""
+ if { [string equal [Widget::getoption $path -type] "button"] } {
+ configure $path -relief $_grab(oldrelief)
+ } else {
+ configure $path -arrowrelief $_grab(oldrelief)
+ }
+ if {[llength [set cmd [Widget::getoption $path -disarmcommand]]]} {
+ uplevel \#0 $cmd
+ }
+ if { $_grab(current) == $path &&
+ ![string equal [Widget::getoption $path -state] "disabled"] &&
+ [llength [set cmd [Widget::getoption $path -command]]]} {
+ uplevel \#0 $cmd
+ }
+ }
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::_repeat
+# ------------------------------------------------------------------------------
+proc ArrowButton::_repeat { path } {
+ variable _grab
+ if { $_grab(current) == $path && $_grab(pressed) == $path &&
+ ![string equal [Widget::getoption $path -state] "disabled"] &&
+ [llength [set cmd [Widget::getoption $path -armcommand]]]} {
+ uplevel \#0 $cmd
+ }
+ if { $_grab(pressed) == $path &&
+ ([set delay [Widget::getoption $path -repeatinterval]] > 0 ||
+ [set delay [Widget::getoption $path -repeatdelay]] > 0) } {
+ after $delay [list ArrowButton::_repeat $path]
+ }
+}
+
+
+# ------------------------------------------------------------------------------
+# Command ArrowButton::_destroy
+# ------------------------------------------------------------------------------
+proc ArrowButton::_destroy { path } {
+ variable _moved
+ Widget::destroy $path
+ unset _moved($path)
+}
diff --git a/lib/bwidget/bitmap.tcl b/lib/bwidget/bitmap.tcl
new file mode 100644
index 0000000..3e157d5
--- /dev/null
+++ b/lib/bwidget/bitmap.tcl
@@ -0,0 +1,94 @@
+# ------------------------------------------------------------------------------
+# bitmap.tcl
+# This file is part of Unifix BWidget Toolkit
+# $Id: bitmap.tcl,v 1.4 2003/10/20 21:23:52 damonc Exp $
+# ------------------------------------------------------------------------------
+# Index of commands:
+# - Bitmap::get
+# - Bitmap::_init
+# ----------------------------------------------------------------------------
+namespace eval Bitmap {
+ Widget::define Bitmap bitmap -classonly
+
+ variable path
+ variable _bmp
+ variable _types {
+ photo .gif
+ photo .ppm
+ bitmap .xbm
+ photo .xpm
+ }
+
+ proc use {} {}
+}
+
+
+# ----------------------------------------------------------------------------
+# Command Bitmap::get
+# ----------------------------------------------------------------------------
+proc Bitmap::get { name } {
+ variable path
+ variable _bmp
+ variable _types
+
+ if {[info exists _bmp($name)]} {
+ return $_bmp($name)
+ }
+
+ # --- Nom de fichier avec extension ---------------------------------
+ set ext [file extension $name]
+ if { $ext != "" } {
+ if { ![info exists _bmp($ext)] } {
+ error "$ext not supported"
+ }
+
+ if { [file exists $name] } {
+ if {[string equal $ext ".xpm"]} {
+ set _bmp($name) [xpm-to-image $name]
+ return $_bmp($name)
+ }
+ if {![catch {set _bmp($name) [image create $_bmp($ext) -file $name]}]} {
+ return $_bmp($name)
+ }
+ }
+ }
+
+ foreach dir $path {
+ foreach {type ext} $_types {
+ if { [file exists [file join $dir $name$ext]] } {
+ if {[string equal $ext ".xpm"]} {
+ set _bmp($name) [xpm-to-image [file join $dir $name$ext]]
+ return $_bmp($name)
+ } else {
+ if {![catch {set _bmp($name) [image create $type -file [file join $dir $name$ext]]}]} {
+ return $_bmp($name)
+ }
+ }
+ }
+ }
+ }
+
+ return -code error "$name not found"
+}
+
+
+# ----------------------------------------------------------------------------
+# Command Bitmap::_init
+# ----------------------------------------------------------------------------
+proc Bitmap::_init { } {
+ global env
+ variable path
+ variable _bmp
+ variable _types
+
+ set path [list "." [file join $::BWIDGET::LIBRARY images]]
+ set supp [image types]
+ foreach {type ext} $_types {
+ if { [lsearch $supp $type] != -1} {
+ set _bmp($ext) $type
+ }
+ }
+}
+
+
+Bitmap::_init
diff --git a/lib/bwidget/button.tcl b/lib/bwidget/button.tcl
new file mode 100644
index 0000000..5b8fc23
--- /dev/null
+++ b/lib/bwidget/button.tcl
@@ -0,0 +1,393 @@
+# ----------------------------------------------------------------------------
+# button.tcl
+# This file is part of Unifix BWidget Toolkit
+# ----------------------------------------------------------------------------
+# Index of commands:
+# Public commands
+# - Button::create
+# - Button::configure
+# - Button::cget
+# - Button::invoke
+# Private commands (event bindings)
+# - Button::_destroy
+# - Button::_enter
+# - Button::_leave
+# - Button::_press
+# - Button::_release
+# - Button::_repeat
+# ----------------------------------------------------------------------------
+
+namespace eval Button {
+ Widget::define Button button DynamicHelp
+
+ set remove [list -command -relief -text -textvariable -underline -state]
+ if {[info tclversion] > 8.3} {
+ lappend remove -repeatdelay -repeatinterval
+ }
+ Widget::tkinclude Button button :cmd remove $remove
+
+ Widget::declare Button {
+ {-name String "" 0}
+ {-text String "" 0}
+ {-textvariable String "" 0}
+ {-underline Int -1 0 "%d >= -1"}
+ {-armcommand String "" 0}
+ {-disarmcommand String "" 0}
+ {-command String "" 0}
+ {-state TkResource "" 0 button}
+ {-repeatdelay Int 0 0 "%d >= 0"}
+ {-repeatinterval Int 0 0 "%d >= 0"}
+ {-relief Enum raised 0 {raised sunken flat ridge solid groove link}}
+ }
+
+ DynamicHelp::include Button balloon
+
+ Widget::syncoptions Button "" :cmd {-text {} -underline {}}
+
+ variable _current ""
+ variable _pressed ""
+
+ bind BwButton {Button::_enter %W}
+ bind BwButton