[Skencil-commits] r705 - in skencil/branches/skencil-0.6: . old_files
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Wed Sep 22 14:20:12 CEST 2010
Author: igor_n
Date: 2010-09-22 14:20:12 +0200 (Wed, 22 Sep 2010)
New Revision: 705
Added:
skencil/branches/skencil-0.6/old_files/BUGS
skencil/branches/skencil-0.6/old_files/COPYING
skencil/branches/skencil-0.6/old_files/CREDITS
skencil/branches/skencil-0.6/old_files/ChangeLog
skencil/branches/skencil-0.6/old_files/FAQ
skencil/branches/skencil-0.6/old_files/INSTALL
skencil/branches/skencil-0.6/old_files/Makefile
skencil/branches/skencil-0.6/old_files/NEWS
skencil/branches/skencil-0.6/old_files/PROJECTS
skencil/branches/skencil-0.6/old_files/README
skencil/branches/skencil-0.6/old_files/TODO
skencil/branches/skencil-0.6/old_files/finishinst.py
skencil/branches/skencil-0.6/old_files/setup.py
skencil/branches/skencil-0.6/old_files/sk2ppm.py
skencil/branches/skencil-0.6/old_files/sk2ps.py
skencil/branches/skencil-0.6/old_files/skconvert.py
skencil/branches/skencil-0.6/old_files/skencil.py
skencil/branches/skencil-0.6/old_files/skencil.spec.in
skencil/branches/skencil-0.6/old_files/skshow.py
Removed:
skencil/branches/skencil-0.6/BUGS
skencil/branches/skencil-0.6/COPYING
skencil/branches/skencil-0.6/CREDITS
skencil/branches/skencil-0.6/ChangeLog
skencil/branches/skencil-0.6/FAQ
skencil/branches/skencil-0.6/INSTALL
skencil/branches/skencil-0.6/Makefile
skencil/branches/skencil-0.6/NEWS
skencil/branches/skencil-0.6/PROJECTS
skencil/branches/skencil-0.6/README
skencil/branches/skencil-0.6/TODO
skencil/branches/skencil-0.6/finishinst.py
skencil/branches/skencil-0.6/setup.py
skencil/branches/skencil-0.6/sk2ppm.py
skencil/branches/skencil-0.6/sk2ps.py
skencil/branches/skencil-0.6/skconvert.py
skencil/branches/skencil-0.6/skencil.py
skencil/branches/skencil-0.6/skencil.spec.in
skencil/branches/skencil-0.6/skshow.py
Log:
Old project description files, build scripts and launch scripts are moved into old_files/
Deleted: skencil/branches/skencil-0.6/BUGS
===================================================================
--- skencil/branches/skencil-0.6/BUGS 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/BUGS 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,41 +0,0 @@
-Bugs
-
-Just some of them...
-
-
-Miscellaneous:
---------------
-
-- printing tiled image patterns with ghostscript 4.03 might produce
- rangecheck errors for the eofill in the tileimage1 procedure. (Does
- this happen in other versions of gs? What happens on other postscript
- interpreters?)
-
-- The bounding box of some objects is too big. The worst cases are
- PolyBezier objects with (very) thick lines and mitered joins and
- ellipse/circle sectors.
-
-Import Filters:
----------------
-
-- skloader:
-
- - line numbers are incorrect
-
- - missing external images (bitmap or EPS), i. e. those where the file
- is not available) are not handled gracefully.
-
-- xfigloader:
-
- - incomplete
-
- - does not handle the depth feature correctly. The z order in the
- sketch document is not correct (i.e. different from that in xfig
- itself or in postscript files generated by transfig) after loading.
-
- - the current implementation has a security hole in the method read_text
-
-- ailoader:
-
- - incomplete
-
Deleted: skencil/branches/skencil-0.6/COPYING
===================================================================
--- skencil/branches/skencil-0.6/COPYING 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/COPYING 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,481 +0,0 @@
- GNU LIBRARY GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL. It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, 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
-this service 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 make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
- Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
- Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs. This
-license, the GNU Library General Public License, applies to certain
-designated libraries. This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
- The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it. Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program. However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
- Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better.
-
- However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.) The hope is that this
-will lead to faster development of free libraries.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, while the latter only
-works together with the library.
-
- Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
- GNU LIBRARY GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License"). Each licensee is
-addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- c) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- d) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-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
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Library 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 Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
Deleted: skencil/branches/skencil-0.6/CREDITS
===================================================================
--- skencil/branches/skencil-0.6/CREDITS 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/CREDITS 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,57 +0,0 @@
-
-Many thanks to all who have commented on Skencil, sent suggestions and
-bug reports and helped in testing or contributed to Skencil with code or
-through minipayments.
-
-In particular, thanks to (in alphabetical order):
-
-Ralf Ahlbrink
-Brian Bartholomew
-Claudio Bettio
-Philippe Blayo
-David Boddie
-Jeffrey Boser
-Simon Budig
-Wanderlei Antonio Cavassin
-Yves Ceccone
-Mauro Colorio
-Aaron Digulla
-Michael Dunstan
-Christof Ecker
-Aurelien Gateau
-Thomas Gellekum
-Paul Giotta
-Martin Glaser
-Philipp Matthias Hahn
-Konrad Hinsen
-Gregor Hoffleit
-Eric Jacobs
-Tamito KAJIYAMA
-Panos Katsaloulis
-Andrey Kiselev
-Steinar Knutsen
-Frank Koormann
-Olof S Kylander
-Tessa Lau
-Thomas Leonard
-Frederic Lepied
-Michael Loßin
-Esteban Manchado Velázquez
-Eric Marston
-Han-Wen Nienhuys
-Joonas Paalasmaa
-Lukasz Pankowski
-Antoon Pardon
-André Pascual
-Lopo Pizarro
-Bernhard Reiter
-Michel Robitaille
-Christian Rose
-Mark Rose
-Christian Schwarz
-John Shumway
-Andy Thaller
-Frédéric Toussaint
-Otto Tronarp
-Valentin Ungureanu
-Jan-Oliver Wagner
Deleted: skencil/branches/skencil-0.6/ChangeLog
===================================================================
--- skencil/branches/skencil-0.6/ChangeLog 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/ChangeLog 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,208 +0,0 @@
-2007-05-01 Bernhard Herzog <bh at intevation.de>
-
- * Pax/fontobject.c (GetAttr): Do not assume that sizeof(int) ==
- sizeof(long). Fixes a problem on 64 bit systems.
-
-2007-05-01 Bernhard Herzog <bh at intevation.de>
-
- * Sketch/UI/mainwindow.py (SketchMainWindow.AboutBox): Update
- copyright dates in about message
-
- * po/da.po, po/de.po, po/es.po, po/fr.po, po/it.po, po/pt.po,
- po/pt_BR.po, po/ru.po, po/rw.po, po/sv.po: Updated
- copyright dates in about message
-
-2006-08-13 Bernhard Herzog <bh at intevation.de>
-
- * Makefile: New. Use "make dist" to create a source tarball.
-
-2006-08-13 Bernhard Herzog <bh at intevation.de>
-
- * INSTALL: Some updates and formatting fixes
-
-2006-08-13 Bernhard Herzog <bh at intevation.de>
-
- * NEWS: Add changes since 0.6.17
-
-2006-08-13 Bernhard Herzog <bh at intevation.de>
-
- * skencil.spec, skencil.spec.in: Renamed skencil.spec to
- skencil.spec.in. skencil.spec will be generated from
- skencil.spec.in when making a release
-
-2006-06-14 Bernhard Herzog <bh at intevation.de>
-
- Make Skencil work with Python 2.5. In 2.5, the id of an object is
- always positive and may be a python long. This breaks some
- assumptions made in paxtkinter.
-
- * Pax/paxmodule.c (register_object, unregister_object)
- (key_for_object): Refactor the creation of the string for the
- object registry into the new function key_for_object
- (register_object): return the key used for the object in the
- registry.
-
- * Sketch/UI/tkext.py (PyWidget.__init__, MakeMethodCommand): Pass
- the key returned by register_object to the tcl functions.
-
-2006-06-14 Bernhard Herzog <bh at intevation.de>
-
- * Sketch/Modules/_sketchmodule.c (init_sketch): Silence a compiler
- warning.
-
-2006-06-13 Bernhard Herzog <bh at intevation.de>
-
- * Sketch/Modules/sktrafo.c (SKTrafo_FromDouble, sktrafo_dealloc),
- Sketch/Modules/skrect.c (fill_free_list, SKRect_FromDouble),
- (skrect_dealloc),
- Sketch/Modules/skpoint.c (SKPoint_FromXY, skpoint_dealloc),
- Sketch/Modules/skfm.c (SKFontMetric_New, skfm_dealloc),
- Sketch/Modules/skdither.c (skvisual_init_dither),
- Sketch/Modules/skcolor.c (fill_free_list, SKColor_FromRGB)
- (skcolor_dealloc, skvisual_pseudocolor_free)
- (SKVisual_FromXVisualInfo, skvisual_dealloc),
- Sketch/Modules/skaux.c (SKCache_New, SKCache_dealloc),
- Sketch/Modules/pstokenize.c (PSTokenizer_FromStream)
- (pstokenizer_dealloc),
- Sketch/Modules/curveobject.c (SKCurve_New, curve_dealloc),
- Pax/tkwinobject.c (TkWin_FromTkWindow, tkwin_dealloc)
- (tkwin_CreateImage, tkwin_ShmCreateImage, try_shm_image)
- (tkwin_PolygonRegion),
- Pax/regionobject.c (PaxRegion_FromRegion, region_dealloc),
- Pax/pixmapobject.c (pixmap_dealloc, PaxPixmap_FromPixmap),
- Pax/paxutil.c (pax_checkshortlist),
- Pax/paxtkinter.c (Tkapp_New, PythonCmdDelete)
- (Tkapp_CreateCommand, NewFHCD, DeleteFHCD, Tktt_New)
- (Tktt_Dealloc, Tkapp_Dealloc),
- Pax/imageobject.c (image_dealloc, PaxImage_FromImage),
- Pax/gcobject.c (pax_checkcharlist, PaxGC_FromGC)
- (PaxGC_SetDashes, Dealloc),
- Pax/fontobject.c (PaxFont_FromName, PaxFont_FromFont, Dealloc),
- Pax/cmapobject.c (paxcm_AllocColorCells, paxcm_StoreColors)
- (paxcm_QueryColors, paxcm_FreeColors, paxcm_dealloc)
- (PaxCMap_FromColormap),
- Pax/borderobject.c (PaxBorder_FromTkBorder, paxborder_dealloc)
- (paxborder_Draw3DPolygon, paxborder_Fill3DPolygon),
- Pax/Generate/typedefs.py (typedefs),
- Filter/zlibfilter.c (dealloc_zlib, Filter_FlateDecode),
- Filter/subfilefilter.c (dealloc_subfile, Filter_SubFileDecode),
- Filter/filterobj.c (new_filter, filter_dealloc),
- Filter/binfile.c (binfile_dealloc, BinFile_FromStream):
- Use Python memory allocation API correctly so that e.g. memory
- allocated by PyObject_New is deallocated by PyObject_Del. Also,
- use the function based API instead of the macros.
-
- * Pax/gcmethods.c: Regenerated
-
-2006-06-05 Bernhard Herzog <bh at intevation.de>
-
- Add the docbook version of the documentation.
-
- * Doc/Makefile, Doc/README: New.
-
- * Doc/devguide/architecture.xml, Doc/devguide/classes.xml,
- Doc/devguide/connector.xml, Doc/devguide/coordsys.xml,
- Doc/devguide/curveobj.xml, Doc/devguide/devguide.xml,
- Doc/devguide/fileformat.xml, Doc/devguide/plugins.xml,
- Doc/devguide/remarks.xml, Doc/devguide/ui.xml,
- Doc/devguide/undo.xml:
- New. docbook version of the developer's guide
-
- * Doc/usersguide/concepts.xml, Doc/usersguide/configuration.xml,
- Doc/usersguide/quickint.xml, Doc/usersguide/scripting.xml,
- Doc/usersguide/usersguide.xml:
- New. docbook version of the user's guide
-
- * Doc/usersguide/Images/CreateCurve.png,
- Doc/usersguide/Images/CreateEllipse.png,
- Doc/usersguide/Images/CreatePoly.png,
- Doc/usersguide/Images/CreateRect.png,
- Doc/usersguide/Images/Delete.png,
- Doc/usersguide/Images/Duplicate.png,
- Doc/usersguide/Images/EditMode.png,
- Doc/usersguide/Images/FlipHorizontal.png,
- Doc/usersguide/Images/FlipVertical.png,
- Doc/usersguide/Images/GridOn.png, Doc/usersguide/Images/Group.png,
- Doc/usersguide/Images/Image.png,
- Doc/usersguide/Images/MiniEyeClosed.png,
- Doc/usersguide/Images/MiniEyeOpen.png,
- Doc/usersguide/Images/MiniPrintOff.png,
- Doc/usersguide/Images/MiniPrintOn.png,
- Doc/usersguide/Images/MoveOneDown.png,
- Doc/usersguide/Images/MoveOneUp.png,
- Doc/usersguide/Images/MoveToBottom.png,
- Doc/usersguide/Images/MoveToTop.png,
- Doc/usersguide/Images/NewDocument.png,
- Doc/usersguide/Images/Open.png, Doc/usersguide/Images/Redo.png,
- Doc/usersguide/Images/Save.png,
- Doc/usersguide/Images/SelectionMode.png,
- Doc/usersguide/Images/Text.png, Doc/usersguide/Images/Undo.png,
- Doc/usersguide/Images/Ungroup.png, Doc/usersguide/Images/Zoom.png,
- Doc/usersguide/Images/arrow-left.png,
- Doc/usersguide/Images/arrow-right.png,
- Doc/usersguide/Images/arrow-up.png,
- Doc/usersguide/Images/bullet.png,
- Doc/usersguide/Images/gradient-conical.png,
- Doc/usersguide/Images/gradient-linear.png,
- Doc/usersguide/Images/gradient-radial.png,
- Doc/usersguide/Images/layers.png,
- Doc/usersguide/Images/selsize.png,
- Doc/usersguide/Images/seltrafo.png,
- Doc/usersguide/Images/sketch-logo.png,
- Doc/usersguide/Images/textpath.png,
- Doc/usersguide/Images/textpathrot.png,
- Doc/usersguide/Images/textpathskew.png:
- New. Images for the user's guide.
-
-2006-03-18 Bernhard Herzog <bh at intevation.de>
-
- * Sketch/Graphics/document.py (EditDocument.CanConvertToCurve)
- (EditDocument.ConvertToCurve): Allow multiple objects to be
- converted to curves at once.
-
-2006-02-12 Bernhard Herzog <bh at intevation.de>
-
- * setup.py (install_file): Patch the first line of scripts so that
- it refers to the python interpreter used for installation. This
- is usually what one wants and make it packaging easier.
-
-2006-02-12 Bernhard Herzog <bh at intevation.de>
-
- Make it easier for packagers to customize where Skencil installs
- files.
-
- * setup.py (InstallDirs.__init__): Set self.library from the
- --libdir option
- (parse_cmd_line): New option for the install command, --libdir to
- specify the name of the directory where Skencil's library files
- are installed. Default is $PREFIX/lib/skencil-<version>/.
-
-2006-02-12 Bernhard Herzog <bh at intevation.de>
-
- * po/de.po: Fix some typos. Patch from the debian project.
-
-2006-01-29 Bernhard Herzog <bh at intevation.de>
-
- * skconvert.py (convert): Properly destroy the document object.
-
-2006-01-29 Bernhard Herzog <bh at intevation.de>
-
- * Sketch/Modules/curveobject.c (curve_append_from_file): Allow any
- object as parameter. PyFile_GetLine can deal not only with real
- file objects, i.e. ones whose type is PyFile_Type, but any object
- which has a readline method.
- Backport from trunk
-
-2006-01-29 Bernhard Herzog <bh at intevation.de>
-
- Merge -r 512:513 from trunk:
-
- * Sketch/Modules/curveobject.c (curve_parse_string_append),
- Sketch/Modules/skreadmodule.c (sklex),
- Sketch/Modules/pstokenize.c (read_name_or_number): Set LC_NUMERIC
- locale to "C" to make sure the C format for floats is recognized
- instead of any locale specific format.
-
-2006-01-29 Bernhard Herzog <bh at intevation.de>
-
- * ChangeLog: Started ChangeLog for Skencil 0.6
Deleted: skencil/branches/skencil-0.6/FAQ
===================================================================
--- skencil/branches/skencil-0.6/FAQ 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/FAQ 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,250 +0,0 @@
-Frequently Asked Questions about Skencil
-========================================
-
- 1 About Skencil
- 1.1 What is Skencil?
- 1.2 Why would I want to use Skencil? I have GIMP!
- 1.3 Where can I find out more about Skencil?
- 1.4 Which Platforms does Skencil work on?
-
- 2 Troubleshooting
- 2.1 I get the error message "ImportError: No module named Image"
- 2.2 The window resizes when I drag the mouse or change the selection
-
- 3 Using Skencil
- 3.1 How do I import a PostScript or EPS file?
- 3.2 How do I export a drawing as EPS?
- 3.3 How do I close a curve or polygon?
- 3.4 How do I rotate an object by a precise angle?
- 3.5 Is there a command line tool to convert sk-files to PostScript?
-
- 4 Miscellaneous
- 4.1 Why doesn't Skencil have support for <some cool feature>?
- 4.2 Which font formats are supported?
- 4.3 Why doesn't Skencil support TrueType fonts?
- 4.4 Can I input text in ISO-Latin-2 or some other encoding?
- 4.5 Is there a Windows version or is one planned?
-
-
-1 About Skencil
-===============
-
-1.1 What is Skencil?
---------------------
-
-Skencil is an interactive vector drawing program for GNU/Linux and
-other UNIX compatible systems. Skencil is implemented almost completely
-in Python, a very high-level, object oriented, interpreted language,
-with the rest written in C for speed.
-
-1.2 Why would I want to use Skencil? I have GIMP!
--------------------------------------------------
-
-Skencil is a vector drawing program. That means a Skencil drawing is
-made up of shapes like rectangles, ellipses and curves that can be
-filled and stroked. Each object is represented by the mathematical
-description of its shape, e.g. for a circle they're the coordinates of
-the center point and the length of the radius. Because of this, vector
-drawings can be scaled without quality loss and it's very easy to
-change parts of a drawing.
-
-GIMP, on the other hand, is an image manipulation program. A GIMP image
-is made up of thousands of pixels and apart from layers has no inner
-structure. This representation has the advantage that you can easily
-have a lot of fine detail because each pixel can have a different
-color, but after you e.g. have drawn a line, all you have is pixels.
-You can't easily change the position or length or color of the line
-after you've drawn it. Furthermore, a raster image is always designed
-with one particular resolution in mind and scaling it often reduces its
-quality.
-
-Both kinds of graphics programs have their strengths and weaknesses and
-for some purposes an image manipulation program is the appropriate tool
-while for others it's the vector drawing program and often you'll need
-both.
-
-1.3 Where can I find out more about Skencil?
---------------------------------------------
-
-The best place to go for information about Skencil is its web-page at
-URL:http://www.skencil.org/.
-
-1.4 Which Platforms does Skencil work on?
------------------------------------------
-
-The feedback I've got so far about other platforms indicates that
-Skencil runs on these platforms too:
-
- - GNU/Linux on i386, Alpha, m68k, PowerPC and Sparc
-
- - FreeBSD
-
- - Solaris 2.5.1, 2.6, 2.7
-
- - IRIX64 6.4
-
- - AIX
-
-
-2 Troubleshooting
-=================
-
-2.1 I get the error message "ImportError: No module named Image"
-----------------------------------------------------------------
-
-This message usually means that the Python Imaging Library (PIL) is not
-installed on your system, so the solution is to install it.
-
-URLs for the sources and rpms can be found on Skencil's web-page (see
-FAQ 1.3) and in the INSTALL file. Some Linux distributions already
-contain a suitable version of PIL although in some cases they're a bit
-buggy.
-
-SuSE Linux 6.2, 6.3 and 6.4, for instance, have a PIL-package, but it's
-slightly broken. The file /usr/lib/python1.5/site-packages/PIL.pth is
-missing. To fix this, create that file with just the line 'PIL' in it
-(without the quotes). (the purpose and syntax of *.pth files is
-described in /usr/lib/python1.5/site.py)
-
-2.2 The window resizes when I drag the mouse or change the selection
---------------------------------------------------------------------
-
-The frequent resizes are caused by the changing texts in the status
-bar. The best solution is to either use the "--geometry" command line
-option to set the size of the main window or to put an entry like
-"sketch.geometry: 900x680" into your .Xdefaults file.
-
-
-3 Using Skencil
-===============
-
-3.1 How do I import a PostScript or EPS file?
----------------------------------------------
-
-That depends on what you want to do exactly.
-
-If you want to embed an EPS file as a whole into a Skencil drawing,
-just treat it like a raster image, i.e. use the menu command
-Edit->Create->Load Image file or use the corresponding toolbar button
-which is the rightmost one.
-
-In this case, you get an EPS-object which Skencil displays with a
-preview image rendered by ghostscript. It behaves very much like a
-raster image, but when you output your drawing as a postscript file,
-the EPS' postscript code is copied to the output file.
-
-If you want to import your postscript file because you want to edit its
-contents, to change fill colors for example, you can in some
-circumstances use the normal file loading commands, i.e. File->Open or
-File->Insert Document, to achieve this. It only works if the file is
-actually an Illustrator file.
-
-For other postscript files, have a look at pstoedit
-(URL:http://www.geocities.com/SiliconValley/Network/1958/pstoedit/). It
-uses ghostscript to interpret arbitrary postscript files and can write
-several vector file formats, including Skencil's own sk-format.
-
-3.2 How do I export a drawing as EPS?
--------------------------------------
-
-Just print into a file or use File->Save as PostScript in the menu.
-Skencil always generates EPS files. You don't have to do anything
-special.
-
-3.3 How do I close a curve or polygon?
---------------------------------------
-
-In edit mode, select both end points and invoke the menu command
-Curve->Close Nodes.
-
-3.4 How do I rotate an object by a precise angle?
--------------------------------------------------
-
-Skencil doesn't have a dialog for this yet, but if you want to rotate
-it by a multiple of 15 degrees, just hold control while rotating the
-object interactively.
-
-3.5 Is there a command line tool to convert sk-files to PostScript?
--------------------------------------------------------------------
-
-Skencil comes with a script called sk2ps that does just that. It's
-automatically installed alongside Skencil and can even read all the
-file formats Skencil can read.
-
-
-4 Miscellaneous
-===============
-
-4.1 Why doesn't Skencil have support for <some cool feature>?
--------------------------------------------------------------
-
-Depending on what the feature in question is, there are several
-possible answers.
-
-The most common reason is simply that nobody has written it yet. There
-are many useful features that Skencil should have, but currently
-there's only one Programmer writing code and that severely limits what
-gets implemented and how fast.
-
-Of course, not every feature is useful or fits well with the goals of
-the Skencil project. However, I hope to make Skencil flexible and
-extensible enough to accommodate such features with plugins and user
-scripts.
-
-See also the FAQs about TrueType fonts (4.3) and text encodings (4.4)
-
-4.2 Which font formats are supported?
--------------------------------------
-
-Currently, Skencil supports only Type 1 fonts.
-
-4.3 Why doesn't Skencil support TrueType fonts?
------------------------------------------------
-
-Well, font-handling under Linux/Unix/X is pretty complex. Applications
-have to do a lot of things themselves that should be provided by the
-'system' (whatever that means). So it's simply a lot of work and I went
-the easy route and support only Type1 fonts because X can render them
-even without any special setup and printing them is no problem because
-it's the native PostScript font format.
-
-Now, with FreeType and XFree 4.0, supporting TrueType fonts will become
-much easier and Skencil will support them one day.
-
-You may also want to have a look at the CurveText extension or the
-JapaneseText extension which let you create bezier objects based on
-TrueType fonts. Both extensions are available through the add-on page
-(URL:http://www.skencil.org/addon.html)
-
-4.4 Can I input text in ISO-Latin-2 or some other encoding?
------------------------------------------------------------
-
-Unfortunately, no. At least not in the 0.6 stable releases.
-
-Adding proper support for that would require a lot more work than I
-want to do for 0.6.x. It would require changes to the way events are
-handled, text objects would have to know about encodings and the
-post-script output code as well, and it would require changes to the
-file format.
-
-That having been said, one of the goals of the current developer
-series, 0.7, is better text support including better support for
-encodings other than ISO-Latin-1. One of the first steps will probably
-be to switch to unicode internally.
-
-When I added text support to Skencil, I simply chose the most simple
-way to handle encodings that would suffice for my needs and that's
-Latin-1 and some support for font-specific encodings for symbol fonts.
-I knew of course that this wouldn't be enough in the long run,
-especially with respect to non-latin scripts and multi-byte character
-sets, but having a simple implementation that works for many users is
-always better than to have no usable code because the project gets
-bogged down in a too complex design, IMO, especially in a Free Software
-project.
-
-4.5 Is there a Windows version or is one planned?
--------------------------------------------------
-
-Joonas Paalasmaa has started on a windows port of Skencil 0.7. More
-information and an installer are available from the 0.7 web-page
-(URL:http://www.skencil.org/devel.html)
Deleted: skencil/branches/skencil-0.6/INSTALL
===================================================================
--- skencil/branches/skencil-0.6/INSTALL 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/INSTALL 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,248 +0,0 @@
-
-Installing Skencil
-==================
-
-These installation instructions are divided into two parts. The first
-part describes the third party software you need for Skencil. The second
-part describes the installation of Skencil itself.
-
-If you habe installed Skencil before you might want to go directly to the
-Skencil specific instructions.
-
-If you are installing on GNU/Linux, check the Skencil website
-for uptodate notes for your platform and availability of prebuild binaries.
-
-
-Installing the third party software
-===================================
-
-
-1. Install Tcl/Tk
------------------
-
-All Tcl/Tk version newer than Tcl 7.6 and Tk 4.2 should work.
-Most GNU/Linux distributions include Tcl/Tk so this step should be easy.
-Tcl/Tk can be found at
-<http://www.scriptics.com/software/download.html>
-
-Skencil uses only standard Tk features. No additional packages are required.
-
-
-2. Install Python
------------------
-
-Python is available from its WWW home page: <http://www.python.org/> or
-via ftp from <ftp://ftp.python.org/pub/python/>. See Python's
-documentation for installation instructions.
-
-You need at least version 1.5.1. Version 1.5 or older will not work,
-since Skencil uses some features only provided by 1.5.1 or higher.
-
-When configuring Python, be sure to enable the Tkinter module (Python's
-installation instructions tell you how to do that). It is disabled by
-default. Tkinter is Python's standard Tk interface.
-
-It may be a good idea to check whether Tkinter works by running some of
-the example scripts from Python's Demo/tkinter/* subdirectories.
-
-
-
-3. Install the Python Imaging Library (PIL)
--------------------------------------------
-
-This library is available from <http://www.pythonware.com>. See the
-accompanying documentation for installation instructions. The
-installation instructions of PIL versions 1.0b1 and earlier seem to
-state that you have to build PIL in the Python source tree; this is not
-true, you can build them anywhere you like if you have a complete Python
-installation.
-
-The installation instructions have a section describing how to add it to
-tkinter. Skencil doesn't need this, as it uses its own image rendering
-code. It does no harm to do it, though.
-
-One point not mentioned in the PIL installation instructions are the
-headerfiles (.h files). For easier configuration of Skencil I recommend
-to install the files the following files found the libImaging
-subdirectory into a directory under the Python include directory:
-
- ImConfig.h ImPlatform.h Imaging.h
-
-(e.g. if your Python include directory is /usr/include/python1.5, put
-them into /usr/include/python1.5/Extensions)
-
-At the moment I use release 1.0 (older versions should also work).
-
-
-
-4. Optional: Python XML package
--------------------------------
-
-This step is optional. The XML package is only needed by the SVG import
-filter. If you don't know what XML is or SVG, just skip this step. It is
-not needed for normal use of Skencil.
-
-If you want to test the SVG import filter, you can get the source of the
-XML package at: http://www.python.org/topics/xml/download.html
-
-
-
-
-Installing Skencil
-==================
-
-There are two ways to install Skencil. The recommended one is to use
-setup.py, a script that configures, builds and installs Skencil for you.
-For cases where this script does not work, you can also use the a manual
-way, described as method 2 below.
-
-The installation process consists of three steps: configuration,
-compilation and installation. These steps are quite independend from
-each other, so even if the script doesn't work for one step it might
-still work for the other two.
-
-
-Method 1: setup.py
-==================
-
-Skencil comes with a script setup.py that can be used to configure, build
-and install Skencil on your System. The normal way to invoke this script
-is:
-
- $ ./setup.py <command> [options...]
-
-where <command> is either 'configure', 'build' or 'install'. The command
-may be followed by options, described below. 'setup --help' prints a
-help message.
-
-If you're familiar with Python, you may note that this is similar to the
-setup.py scripts of the Python distutils. This script is somewhat
-different, though, because it was written before distutils existed. The
-distutils were already being discussed, however, and this script is
-follows what was being discussed back then, to an extent.
-
-
-Configuration
--------------
-
-Skencil needs to access the Python Imaging Library from C, so it needs to
-know where its headerfiles are. Unfortunately there's no standard place
-where they are installed, but if you've installed them as described
-under 'Install PIL' above, you can just do:
-
- $ ./setup.py configure
-
-If your PIL headerfiles are somewhere else, use
-
- $ ./setup.py configure --imaging-include=<dir>
-
-where <dir> is the appropriate directory.
-
-Another option you may want to use is '--with-nls' to enable national
-language support. If you've set the environment variable LANG to a
-suitable value (e.g. de for German) Skencil uses that language in its
-menus, dialogs and messages, if Skencil has the appropriate translation.
-
-
-
-Compilation
------------
-
-This is simple, if configuration was successful. Just do
-
- $ ./setup.py build
-
-This compiles the C-modules.
-
-
-Installation
-------------
-
-setup.py installs almost all files under <prefix>/lib/sketch-<version>.
-
-<prefix> defaults to /usr/local and <version> is the current Skencil
-version.
-
-It also creates two symbolic links (skencil and sk2ps) in <prefix>/bin
-pointing to skencil.py and sk2ps.ps in <prefix>/lib/sketch-<version>.
-
-To install under /usr/local run
-
- $ ./setup.py install
-
-to use a different <prefix> run
-
- $ ./setup.py install --prefix=<dir>
-
-
-You can now start Skencil with
-
- $ skencil
-
-if <prefix>/bin and is in your $PATH. If it isn't, use the full filename
-of the symbolic link in the <prefix>/bin directory.
-
-
-
-
-Method 2: The old manual Method
-===============================
-
-
-First, change into the subdirectory Pax. You'll find a file Setup.in.
-Copy that file to Setup and edit it. Follow the comments in that file.
-Pax has to be linked against the same versions of Tcl/Tk as Tkinter.
-
-Now, in Pax, type:
-
- $ make -f Makefile.pre.in boot
- $ make
-
-You should have a file Pax/paxmodule.so now.
-
-Now, go to the Filter subdirectory (there's another Setup.in file here,
-but you shouldn't need to change it) and type:
-
- $ make -f Makefile.pre.in boot
- $ make
-
-You should have a file streamfilter.so now.
-
-Now, go to the Sketch/Modules subdirectory and edit the file Setup.in
-there. Again, if you change anything, save the file as Setup.
-
-Now, in Sketch/Modules type (you guessed it):
-
- $ make -f Makefile.pre.in boot
- $ make
-
-You should have a file _sketchmodule.so now (and some other .so files).
-
-Finally, go to the topmost directory and run the python script
-finishinst.py. This will compile the Python source files. This step is
-not really necessary, but sketch should start a bit faster)
-
-
-Starting Skencil
-================
-
-
-Now you can test Skencil from the topmost directory by running
-
- $ python skencil.py
-
-or
-
- $ ./skencil.py
-
-if your Python interpreter is somewhere in your $PATH.
-
-
-If you want to install Skencil somewhere outside of the source tree, use
-the setup.py script as described above.
-
-For further information on Skencil, have a look at the ``User's Guide'',
-or if you're interested how Skencil is implemented or if you want to
-extend it, read the ``Developer's Guide''. Both documents are quite
-incomplete.
-
Deleted: skencil/branches/skencil-0.6/Makefile
===================================================================
--- skencil/branches/skencil-0.6/Makefile 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/Makefile 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,75 +0,0 @@
-#
-# Make distribution
-#
-
-
-all:
-
-VERSION := $(shell cat Sketch/VERSION)
-
-DIST_BASENAME = skencil-$(VERSION)
-
-DIST_TAR = $(DIST_BASENAME).tar.gz
-
-DISTBASEDIR = dist
-DISTDIR = $(DISTBASEDIR)/$(DIST_BASENAME)
-
-FILES = \
- README INSTALL NEWS COPYING TODO PROJECTS BUGS CREDITS FAQ \
- skencil.py sk2ps.py skshow.py skconvert.py sk2ppm.py \
- finishinst.py setup.py skencil.spec \
- Examples/* \
- Tools/* \
- Pax/X.py Pax/README Pax/COPYING{,.xext} \
- Misc/README Misc/Symbolgroup/{README,*.sk} Misc/magic \
- Filter/{README,COPYING} \
- Plugins/ChangeLog \
- Sketch/VERSION \
- Sketch/Pixmaps/*.{xbm,gif} Sketch/Pixmaps/New12/*.xbm \
- Resources/Fontmetrics/* \
- Resources/Misc/* \
- Resources/Messages/*/*/*.mo \
- Doc/Makefile \
- Doc/{dev,users}guide/*.xml \
- Doc/{dev,users}guide/html/*.html \
- Doc/usersguide/{html/,}Images/*.png \
- po/*.po po/skencil.pot po/{Makefile,README}
-
-PY_DIRS = Sketch/{,Base,UI,Graphics,Lib,Scripting} Script/ Pax/Generate \
- Misc/{,Symbolgroup}
-PY_DIRS_RECURSIVE = Plugins/
-C_DIRS = Pax Sketch/Modules Filter
-
-CP = cp -l --parents
-
-skencil.spec: skencil.spec.in Sketch/VERSION
- rm -f skencil.spec
- sed -e 's/@VERSION@/$(VERSION)/' < skencil.spec.in > skencil.spec
-
-doc:
- $(MAKE) -C Doc
-
-messages:
- $(MAKE) -C po mo
-
-dist: skencil.spec doc messages
- rm -rf $(DISTDIR)/*
- test -e $(DISTBASEDIR) || mkdir $(DISTBASEDIR)
- test -e $(DISTDIR) || mkdir $(DISTDIR)
- $(CP) $(FILES) $(DISTDIR)
- for dir in $(PY_DIRS); do \
- $(CP) $$dir/*.py $(DISTDIR); \
- done
- for dir in $(PY_DIRS_RECURSIVE); do \
- find $$dir -name '*.py' \
- -exec cp --parents -p '{}' $(DISTDIR) ';' ; \
- done
- for dir in $(C_DIRS); do \
- $(CP) $$dir/*.{c,h,in} $(DISTDIR); \
- if [ -f $$dir/Setup.config ]; then \
- $(CP) $$dir/Setup.config $(DISTDIR); \
- fi \
- done
- rm -f `find $(DISTDIR) -name config.c`
- (cd $(DISTBASEDIR); tar cvzf $(DIST_TAR) $(DIST_BASENAME))
-
Deleted: skencil/branches/skencil-0.6/NEWS
===================================================================
--- skencil/branches/skencil-0.6/NEWS 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/NEWS 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,1590 +0,0 @@
-Skencil 0.6.18 ()
-================================
-
- * Prepare for Python 2.5:
-
- * The extension modules now use the Python memory allocation API
- consistently. Without this change, Skencil would crash with Python
- 2.5.
-
- * Adapt paxtkinter to changes in Python's id function
-
- * Some more Python 2.4 related fixes:
-
- * The C-code assumed that the LC_NUMERIC locale was effectively "C"
- which Pyton versions prior to 2.4 practically guaranteed.
- Skencil's C-code now sets the locale temporarily to "C" when
- parsing numbers.
-
- * The User's Guide and the Developer's Guide have been converted to
- docbook.
-
- * The "Convert to Curve" command is now available whenever it can be
- applied to at least one of the selected objects
-
- * setup.py now patches the first line of scripts so that they refer to
- the Python interpreter used for installation. This is usually what
- one wants and it makes packaging easier.
-
- * setup.py has a new option, --libdir, to indicate where library files
- are to be installed to help packagers.
-
-
-
-Skencil 0.6.17 (June 19th, 2005)
-================================
-
- * Prepare for Python 2.4:
-
- * Update paxtkinter to deal with python's Tkinter changes
-
- * The .sk file format is now the default file format in the File/Open
- dialog. Patch by Frank Koormann
-
- * The setup.py script works on HP-UX now. Shared libraries have a .sl
- extension there. Patch by Olivier Mehani (Savannah patch #3709).
-
- * Mouse-wheel support for the canvas. The mouse wheel scrolls up/down.
- Savannah patch #3836 by cafeine
-
- * Updated the FAQ a bit to better match the one on the web-page.
-
- * Kinyarwanda translations by Steve Murphy. The translation seems
- quote incomplete.
-
-Bug Fixes:
-
- * On some systems math.atan2 raises an exception when called with two
- zeros. Fix one occurrence in the arrow module.
- Reported by Joel Biddier
-
- * Cancelling the drawing of a poly line or poly bezier with ESC
- resulted in tracebacks until the next mouse click. Reported by
- Antoon Pardon (Savannah bug #9378). Patch by Valentin Ungureanu
- (Savannah patch #3141).
-
- * The "Export Raster" script gives a better error message if
- ghostscript can't be called. Bug reported by Eric Devost
-
- * When importing EPS files, skencil didn't parse %%BeginData comments
- correctly. Fixed by Savannah patch #3134 by Bernhard Reiter
-
- * The svg export filter now sets the winding rule for all objects to
- even-odd. Savannah patch #3103 by Philippe Blayo, fixes Savannah bug
- #5756 by Simon Budig.
-
- * The SVG filter handles ill-formed transform specifications a bit
- better. The old version would hang in a regular expression match if
- the triling closing parenthesis of e.g. a matrix specification was
- missing. Bug report by Joel Biddier
-
- * The svg import filter also accepts capital Z as closepath command of
- a path specification as required by the SVG specification. Savannah
- Patch #3587 by Bernhard Reiter.
-
- * In the print dialog, when the user clicked on the file selection
- button and cancelled the dialog, Skencil would give an exception.
- This is now fixed.
-
- * The usage messge printed when the --help option is given on the
- command line now correctly refers to "skencil" not "sketch" anymore.
-
- * The source URL in the spec file now refers to skencil as well. It
- still points to sourceforge, though. Patch by Paul Dickson
-
- * The setup.py script now finds the tcl/tk libraries on OpenBSD as
- well (savannag bug #12046)
-
- * Already in 0.6.16, but not mentioned before: Skencil's type1 font
- parsing code could not cope with some type1 files -- files with no
- subrs or with flexes. Now it can. Bug report by André Pascual
-
-
-Skencil 0.6.16 (January 24th, 2004)
-===================================
-
- * Skencil is the new name for the vector drawing program formerly known
- as "Sketch".
-
- This is only a superficial renaming. All places in the GUI are
- changed and the main executable is now called skencil (for backwards
- compatibility you can also start Skencil with "sketch" as before).
-
- Internally nothing has changed in this regard. The main python
- package is still called Sketch for instance and the userspecific
- configuration is still stored in ~/.sketch
-
- Thanks to Frank Koormann for coming up with the name "Skencil".
-
- * New icons including a new icon for Skencil itself contributed by
- Taiabati (http://www.taiabati.it/). These icons were drawn with
- Skencil and the raster versions were created with the help of Gimp.
- The Skencil files can be found in the Examples directory.
-
- * The sk2ps.py script has a new option, --embed-fonts or -e to embed
- the fonts used by a drawing in the postscript output. Patch by Otto
- Tronarp
-
- * The print dialog also has a check box "Embed fonts" now. Patch by
- Antoon Pardon
-
- * The sk2ppm.py script has a new option, --alpha-bits or -A, to make
- ghostscript ase anti-aliasing. Patch by Tamito KAJIYAMA
-
- * The skshow.py script has a new option, --fit. If given it fits the
- bounding box of the drawing rather than the page to the window size.
- Patch by Antoon Pardon
-
- * The color dialog has RGB entry fields now. Patch by Bernhard Reiter
-
- * Updated German translations
-
- * Portuguese translations by Lopo Pizarro
-
- * Updated French translation by Michel Robitaille
-
- * Updated Swedish translations by Christian Rose
-
- * WMF export filter by Lukasz Pankowski
-
- * Antoon Pardon has updated the CGM filters
-
- * The CGM export filter supports path text now. Patch by Lukasz Pankowski
-
- * The script that reads GIMP paths is now in the Script subdirectory
- and activated by default
-
- * The center of rectangles is now also a snap point. Based on a patch
- by Valentin Ungureanu
-
- * The multi line text objects can deal with more variants of boldness
- and other attributes in fonts. Patch by Antoon Pardon
-
- * Make Sketch work with Python 2.3 without warnings:
-
- - Update paxtkinter so that it works with the new Tkinter
-
- - Change hex literals so they don't trigger warnings about being
- interpreted differently in future versions
-
- - Make sure to use ints and not floats where some C-functions expect
- ints
-
-Bug Fixes:
-
- * Make sktops.py work when drawing all visible layers and the grid
- layer is marked as visible. Patch by Andy Thaller
-
- * Sketch failed to load .sk files that contained very long lines
- following a bezier curve. Patch by Andy Thaller
-
- * Sketch failed to load .sk files that contained empty plugin objects.
- These objects are now simply ignored when loading such files
-
- * The SVG export filter makes sure now that text objects do not have
- strokes. Bug reported by Peter Robins
-
- * The SVG import filter now uses a black fill by default. Bug reported
- by John Ellson
-
- * Fixed the copyright notices which said LPGL but referred to the GPL
- too. They now have the same license statement as all other LPGPLed
- files
-
- * When "Snap to Objects" was active and a new object was created the
- points that Sketch snapped to were not updated properly. Reported by
- Valentin Ungureanu
-
- * Avoid attribute errors in the __del__ method of Font objects.
- Reported by Antoon Pardon
-
-
-Sketch 0.6.15 (January 31, 2003)
-================================
-
- * Updated CGM import/export filters from Antoon Pardon
-
-Bug Fixes:
-
- * Fix the order of the items in the changelog in the spec-file (Andy
- Grimberg)
-
- * When using setup.py install with the --dest-dir option make sure that
- the correct filename is put into the bycompiled files (*.pyc). Patch
- from Ralf Ahlbrink
-
- * Make Sketch compile with tcl/tk 8.4. Problem noticed by Michael
- Soibelman.
-
- * In setup.py, handle the 'make' variable parameters (e.g. CC=gcc)
- properly when they contain multiple equals signs. Patch by Sebastian
- Stark
-
- * Allow digits in the keys of format specifiers in the format strings
- returned by the Info method of a GraphicsObject.
-
- * The SVG import filter now handles the viewBox attribute of the svg
- element (it doesn't handle the preserveAspectRatio attribute though).
- The filter also makes sure that non-text object won't get a font
- attribute and it understands more color names. Bugs reported by Keith
- Hopper
-
- * The CMX import filter handles poly-curves with a large number of
- points better now. Reported by Tim Wright.
-
-
-Sketch 0.6.14 (September 21st, 2002)
-====================================
-
- * Brasilian Portuguese translation by Wanderlei Antonio Cavassin
-
- * Swedish translations by Christian Rose
-
- * New French translation by Michel Robitaille.
-
- * New Spanish translation by Esteban Manchado Velázquez
-
- * Updated po/README to explain about the formatting templates (%-format
- specifiers in strings)
-
- * CGM import/export filters contributed by Antoon Pardon
-
- * New example script Script/footprints.py which contains the code of
- the footprints script demonstrated in the Sketch presentations at
- LinuxTag and EuroPython 2002.
-
- * Change the license statements of a few files to match those of other
- modules (LGPL). The affected file are pdfgensaver.py, svgloader.py
- and svgsaver.py in Plugins/Filters/ and Sketch/UI/plugindlg.py.
-
- * Already in 0.6.13: The SVG export has some basic support for Text.
- Based on a Patch by Paul Giotta
-
- * Updated sketch.spec file based on the one Andy Grimberg used for
- sketch-0.6.13-3.src.rpm
-
-Internal Changes:
-
- * The pdfexport filter can now output to an existing reportlab pdfgen
- canvas.
-
- * Remove the DEFS= lines from the Makefile.pre.in files. With them,
- Sketch won't build with current CVS Python and probably won't with
- 2.3 either. The lines are not needed anyway for Sketch.
-
- * Added encoding declarations to some files in preparation for Python
- 2.3 which gives warnings for files that contain non-ascii characters
- and don't have an encoding declaration.
-
-Bug Fixes:
-
- * Applying Font settings when no object is selected (so that the
- default settings are changed) now works again. Reported by Antoon
- Pardon
-
- * Nodes inserted into bezier segments are now 'smooth' instead of
- 'symmetric'. Reported by Antoon Pardon
-
- * sk2ppm now works when the output filename is omitted. Bug reported by
- Jan-Oliver Wagner
-
- * With Tcl/Tk >= 8.1, filenames with non-ascii characters were not
- handled correctly. This is better now, but it's probably not perfect.
- Reported by Bernhard Reiter.
-
- * The SVG export filter now escapes text properly. Bug reported by
- Stefan Eilers (SF #545267).
-
- * The extension modules in Sketch/Modules, Filter and Pax now use the
- Python Memory API correctly as specified for Python 1.5.2 but it
- should also be compatible with later versions including 2.3
- (according to the discussion in April 2002)
-
- * The postscript output handles writing to an EPS file that's also
- referenced by the drawing itself. Previously, in such cases Sketch
- would open the eps file it was writing to again and copy the file
- into itself filling up the file system. Bug reported by Rodrigo
- Benenson (SF #550917)
-
- * The command Style->Update Style now works under Python 2.2 as well.
- Bug reported by Juan Pablo Romero. Pieter Edelman pointed out that it
- happens only under Python 2.2.
-
- * The line dialog now updates when the selected object doesn't have an
- outline. It just checks the "None" checkbox in this case. In earlier
- versions it would just ignore the selection change when the newly
- selected object didn't have an outline. Reported by Antoon Pardon.
-
- * setup.py now looks for the tk header files in /usr/include/tclX.Y
- (X.Y is the tcl version) as well.
-
- * Each time the line dialog was opened an empty arrow head was added to
- the list of arrow heads making the option menu grow by one entry each
- time the line dialog was opened. Fixed now.
-
- * Fix a typo in the simple_separation script. Spotted by Esteban
- Manchado Velázquez
-
- * skapp.py referenced the locale module's Error exception which didn't
- exist in Python 1.5.2.
-
-
-Sketch 0.6.13 (March 3rd, 2002)
-===============================
-
- * You can now assign font properties to multiple objects at once.
- Suggested/reported/repeatedly whined about ;-) by Jeffrey Boser
-
- * A multi-line text object. You can create multiline text objects with
- the menu item Edit->Create->Multiline Text. Contributed by Christof
- Ecker
-
- * An import filter for the Acorn Drawfiles. Contributed by David
- Boddie.
-
- * The gradient editor now has a button "Reverse" which reverses the
- gradient in the editor. Patch from Aurelien Gateau
-
- * Updated translations: Spanish by Esteban Manchado Velázquez, Russian
- by Andrey Kiselev, Italian by Mauro Colorio.
-
- * The wmf import filter supports a PolyPolylines now. Patch from Antoon
- Pardon.
-
- * A new command line tool, skconvert.py that converts between vector
- formats Sketch can read and write.
-
- * A new command line tool, sk2ppm to convert vector files to PPM
- (portable pixmap)
-
- * Two new sample scripts in Script:
-
- reload_image can reload external raster images or update the preview
- images of EPS files.
-
- simple_separation provides a very simple form of color separation by
- creating one ps file for each color used in the drawing.
-
- * The Illustrator-import filter now gives a warning if the file looks
- as if it's not generated by AI. Furthermore it understands text
- alignment now.
-
- * The SVG import filter parses paths more correctly now. The old
- version didn't accept numbers without delimiters in between, which is
- legal in an SVG path if the second number starts with a sign.
-
- * Some of the scripts in the Script module are now loaded automatically
- on startup. If you don't want that, put the line
-
- preferences.standard_scripts = []
-
- into ~/.sketch/preferences.py
-
- * The resolution of EPS images is configurable now. You can set it with
- in ~/.sketch/preferences.py with a line like
-
- preferences.eps_preview_resolution = 144
-
- In this example the resolutioin is set ot 144 pixels per inch, which
- is twice the default value.
-
-Bug Fixes:
-
- * Quote filenames of EPS files properly when rendering the preview.
- The previous behavior was a security problem.
-
- * The setup.py script omitted the -lX11 parameter for the paxtkinter
- module when run under Python 2.1 or with the --tk-autoconf parameter.
- Spotted by Grant Edwards.
-
- * The PostScriptDevice's DrawLineXY method used the wrong y coordinate
- for the end-point.
-
- * The PostScriptDevice uses floats for font sizes now.
-
- * Call setlocale to make the gettext functions work properly. There's
- some strange interaction with tcl/tk for which Sketch/UI/skapp.py
- contains a workaround. Reported by Gregor Hoffleit.
-
- * Not really a bug-fix, perhaps, but in SafeScripts it's now allowed to
- call a few of the special python methods, such as __cmp__. The spread
- script ran into this problem in some cases.
-
- * The reload panel lists the correct modules again.
-
- * In the Pax module, the CopyPlane of the pixmap objects allows another
- pixmap as the destination drawable too.
-
- * Already done in 0.6.12: Fixed a bug in the stream filter module that
- prevented Sketch from loading very small images embedded in Sketch
- documents. Reported by Geoffrey T. Dairiki.
-
-Internal Changes:
-
- * Plugins can now have plugin specific libraries. This is done with a
- slightly incompatible way in how the plugin path is handled.
-
- If A plugin has additional library modules, the library modules
- should be put into a Lib direcory in the directory where the plugin
- is placed. Sketch will automatically create a Lib package whose
- __path__ contains that Lib directory so that the plugin can import
- modules from there with "import Lib.module". How this works can be
- seen in both new plugins (multi-line text and the drawfile input
- filter).
-
- * Plugins may now have an additional configuration variable,
- load_immediately. When set to true (default false) it will cause the
- plugin management code to load the plugin module immediately after it
- has been scanned.
-
- * The function Sketch.UI.prompt.get_sketch_modules once again correctly
- determines which modules belong to Sketch.
-
-
-Sketch 0.6.12 (July 5th, 2001)
-==============================
-
- * View->Load Palette... also supports Gimp palette files.
-
-Bug fixes:
-
- * The PostScript generator now handles RGBA images used as tiles
- correctly. Reported by Andy Grimberg.
-
- * Modifying objects that lay far outside the window could lead to X
- Errors.
-
- * Loading AI files sometimes raised exceptions with an AttributeError
- "'None' object has no attribute 'guess_continuity'". This is now
- fixed. Reported by Eric Faurot.
-
- * The CMX import filter handles empty groups gracefully. Bug reported
- by Yuri Shchedov.
-
- * Fix some typos in skshow's doc-string. This is basically what's
- already done with the Debian packages.
-
- * Changing the paper format could lead to an inconsistent mapping
- between document and window coordinates. Reported by Antoon Pardon.
-
-Internal Changes:
-
- * The TrafoPlugin objects have a Trafo method now that returns the
- transformation.
-
- * TrafoPlugin.__init__ now accepts a trafo object as the trafo kw-arg
- and accepts the loading kw-arg.
-
- * The Append* methods of curve objects now raise a TypeError exception
- when the first segment appended to a curve is not a line segment. One
- consequence of this change is that Sketch may not be able to load
- some sk-files anymore when they contain curves that start with a
- bezier segment. You can use the new script Misc/fix_broken_sk_file.py
- to fix such files.
-
-
-Sketch 0.6.11 (June 9th, 2001)
-==============================
-
- * Updated Spanish translation by Esteban Manchado Velázquez
-
- * Add /usr/lib/ghostscript/fonts to the default list of font
- directories (for debian).
-
- * Include the .spec file in the tarball and distribute the Misc
- directory with the RPMs as documentation.
-
-Bug fixes:
-
- * The find_include_dir function in setup.py now catches and ignores
- OSError exceptions, too. Pointed out by Pierre HANSER.
-
- * The russian translation are now properly contained in the archive as
- *.mo files too.
-
- * Drawings that contained non-ASCII characters in strings were not read
- back correctly when saved under Python 2.1
-
- * The import filters now remove empty curve objects. The implementation
- of 0.6.9 didn't cover all special cases. The new one works
- differently but shuld catch all cases.
-
-
-Sketch 0.6.10 (May 14th, 2001)
-==============================
-
- * Russian translation contributed by Andrey Kiselev
-
- * Fix setup.py so that Sketch can be compiled with Python 2.1. The main
- change here is that in Python 2.1, the _tkinter configuration can't
- be taken from the Setup file anymore because of Python's new build
- process.
-
- If setup.py is run by Python 2.1 or higher it now uses the distutils
- and code pretty much like Python's setup.py to figure out which
- compiler flags to use for the Tk-specific C-code.
-
- This change also introduces two new command line options for the
- configure command:
-
- --tk-flags=flags
-
- Compiler flags to use for building the tk-modules. E.g.
-
- ./setup.py configure --tk-flags="-L/opt/tk/lib -ltk8.2 -ltcl8.2"
-
- --tk-autoconf
-
- Determine the compiler flags for Sketch's tk-modules without
- referring to Python's Setup file as described above. When run
- under Python 2.1 this will always be done. You can use this flag
- to force this mode under older Python versions.
-
- It only works if the distutils are installed. Beginning with
- Python 1.6 the distutils are part of Python's standard library.
- For Python 1.5.2 a separate package is available at
- <http://www.python.org/sigs/distutils-sig/download.html>
-
- * "setup.py build" now stops when an error occurs. This should make
- build problems more obvious.
-
- * setup.py now stops when an unknown command line flag is given.
-
- * Fix the point extension type to work with Python 2.1
-
- * In the print dialog, the "rotate ccw." checkbutton is automatically
- set when the document uses landscape page orientation.
-
- * The SVG import filter now has basic support for text and images.
- Contributed by John Shumway.
-
- * The SVG import filter now works with Python 2.1 (and probably 2.0 as
- well).
-
- * The virtual size of the canvas is much larger now to accomodate large
- paper sizes better.
-
- * The generator scripts in Pax/Generate create ANSI prototypes now
-
-
-Bug fixes:
-
- * In the SVG export filter, add a missing space in the radial gradients
- SVG code, and set gradientUnits="userSpaceOnUse" in linear and radial
- gradients. Pointed out by Laetitia MARIN.
-
- * The warning module would throw exceptions instead of printing error
- when plugin directories were not readable. Pointed out by Jonathan
- Soons.
-
- * The computation of the bounding rectangles of an ellipse threw
- exceptions on some platforms in some cases. Pointed out by Damien
- Chrisment
-
- * Catch import errors for plugins better in mainwindow.py. In earlier
- versions an import error in e.g. the SVG import filter would abort
- the entire application.
-
- * Fix a bug in the PDF export filter that gave filled arrows the wrong
- color.
-
- * Python 2.1 exposed a bug in the rect implementation that gave a
- document an infinite bounding box in some cases.
-
- * Changes in the paperformat have the proper effect now on the position
- of the page on the virtual canvas.
-
- * Fixed the _type1module to work with Python 2.0.
-
-
-Sketch 0.6.9 (March 1st, 2001)
-==============================
-
- * Italian translation contributed by Mauro Colorio.
-
- * Bernhard Reiter contributed an expanded version of the
- export_raster.py script which lets you set more parameters in the
- dialog. It is now in the Script package so that you can import it
- with the line
-
- import Script.export_raster
-
- In your ~/.sketch/userhooks.py.
-
- * The sk2ps script now has a --rotate/-r option to rotate the drawing.
- Useful to print landscape format drawings.
-
- * The line properties dialog no longer sets the color to None when a
- group or other object is selected that doesn't have line properties
-
- * Slightly updated FAQ list.
-
-Bug fixes:
-
- * In some cases the PostScript generator rounded text-coordinates to
- integers instead of using floats. Pointed out by Kai-Uwe Behrmann.
-
- * The PDF-export filter supports arrow heads now and handles dash
- patterns correctly.
-
- * The XFig import filter supports dashes now
-
- * Fix a small problem in the SVG inport filter's handling of
- coordinates in %-units. Patch provided by Philipp Matthias Hahn
-
- * Several fixes to make Sketch work with Python 2.0. Thomas Gellekum
- contributed a patch for Sketch/Modules/skcolor.c and Ron Shonkwiler
- pointed out problems in Pax when using PseudoColor visuals that are
- also fixed now.
-
- * In tk versions >= 8.1, key stroke events with non-ASCII characters
- should work once more for Latin1 characters. Those tk-versions report
- characters as UTF8 which confused Sketch. Reported by Armin Geisse
-
- * Fixed a small name error in selection.py which could be triggered by
- buggy user scripts
-
- * Fix a bug in generating the warning message when keystrokes are
- overridden by userhooks.py
-
- * The import filters are a bit more robust. They ignore empty curve
- objects automatically
-
-
-Sketch 0.6.8 (August 12th, 2000)
-================================
-
- * Styles can now have explicitly empty fill and line properties.
-
- * <Ctrl-Space> now does the same as <Space> alone, that is, switch
- between selection- and edit-mode. Unlike <Space>, <Ctrl-Space> also
- works when editing text.
-
- * Pressing Ctrl when moving objects or Bezier-nodes now also constrains
- to diagonals in addition to horizontal and vertical movement. Based
- on a patch by Antoon Pardon.
-
- * You can now click and drag a bezier segment in edit mode. Based on
- demo code by Simon Budig.
-
- * Sketch can write PDF files now. For this feature you need reportlab
- from <http://www.reportlab.com>. This filter is quite complete, but
- there are some limitations. It doesn't suport embedded EPS files,
- tiled image fills, fonts that aren't among PDFs builtin fonts (it
- will use Times-Roman instead), and some more esoteric features.
-
- Note that reportlab 1.0 has some bugs that affect Sketch. They're
- already fixed in CVS, so they should be in their next release.
-
- * The SVG export filter supports radial and axial gradients now.
-
- * Guide-lines no longer snap to other guide-lines when dragging them
- but they still snap to guide-objects (i.e. objects on the guide layer
- that are not guide-lines).
-
-Bug fixes:
-
- * Give a meaningful error message when trying to print a document that
- has no printable layers. Previous versions would fail with a
- traceback in that case. The bug affected both File->Save as
- PostScript and the Print dialog. Reported by Michael Walton.
-
- * In setup.py, use sys.exec_prefix to determine the location of
- "Setup". Patch contributed by Tessa Lau
-
- * Sometimes the allocation of a shared memory image fails even though
- tests at startup showed that they're supported (a common problem on
- Solaris due to a default configuration which only allows relatively
- small shared memory images). This case is handled more gracefully
- now.
-
- * setup.py now also looks in Setup.local (in addition to Setup) for the
- tkinter configuration. Pointed out by Daisuke Yabuki.
-
- * In paxtkinter, initialize the Tcl interpreter properly. The old
- incorrect way was causing problems with a japanese
- internationalization patch. Pointed out by Daisuke Yabuki.
-
- * The rectangle object used to print a lot of tracebacks in edit mode
- when the user didn't select a handle. Fixed now.
-
- * The information about the currently selected object in the status-bar
- wasn't always updated correctly
-
-Internal Changes:
-
- * The stream-filter module includes ASCII85 encode and decode filters
- and some bug-fixes.
-
-
-Sketch 0.6.7 (May 5th, 2000)
-============================
-
- * The missing import of the plugins module that prevented Sketch from
- loading any vector files, including it's native sk-format, is fixed.
-
- * Correction: The changes in the PIL import code in Sketch 0.6.6 do not
- make it work with the PIL packages in SuSE Linux 6.2 and 6.3 out of
- the box. Those packages are broken and have to be fixed as described
- in INSTALL. The same applies to SuSE 6.4.
-
-
-Sketch 0.6.6 (April 30th, 2000)
-===============================
-
-New or Changed Features:
-
- * French translations contributed by Yves Ceccone and Frédéric
- Toussaint.
-
- * Updated Spanish translations provided by Esteban Manchado Velázquez.
-
- * A few new scripts in the Scripts package: average_points,
- create_star_outline, inspect_beziers and create_spiral, contributed
- by Tamito KAJIYAMA and spread which defines eight scripts to
- distribute the selected objects in various ways, contributed by
- Michael Loßin
-
- * A new command line option, --run-script <scriptfile>, which executes
- the file scriptfile on startup after creating the widgets and either
- creating an empty new document or loading a document from a file if a
- document filename was supplied on the command line.
-
- The script is executed by execfile() with a globals dictionary
- containg a 'context' object just like a normal user script.
-
- * If a directory is given on the command line instead of a normal file,
- Sketch now opens a file open dialog with that directory (suggested by
- François Pinard).
-
- * A simple slideshow tool, skshow.py. It's installed together with
- sketch.py and sk2ps.py. Run it with the --help option to get more
- information on how it works. (originally written as an example for
- Christof Ecker)
-
- * A new crosshairs style cursor, activated by the menu item
- View->Crosshairs. If snapping is active, this cursor is warped to a
- snap point if the mouse pointer is near one. (suggested by Rainer
- Menzner)
-
- * The "Zoom Area" tool can also zoom out now by holding the control key
- when releasing the mouse button.
-
- * New sections in the Developer's Guide about the connector module and
- plugin objects.
-
- * A new file Misc/magic with an entry for your magic file, as used by
- e.g. file(1). Contributed by Michael Loßin.
-
- * An FAQ list.
-
-
-Bug Fixes:
-
- * Updated the AI import filter a bit to deal with Illustrator 8 files.
- (Reported by Fritz Heinrichmeyer).
-
- * The Python Imaging Library is used as a package now. Some people want
- to install PIL without the PIL.pth file because of name conflicts
- with e.g. Zope. This change also makes Sketch work with the pil rpm
- of SuSE Linux 6.2-6.3 out of the box.
-
- * The PostScript generator now treats dashes for lines with widths less
- than 1 point as the screen drawing routines. I.e. the lengths of the
- dash are computed as if the line width was 1 pt.
-
- * Fix the bug in the PostScript generator that produced incorrect
- dashes if two lines with same logical dash-pattern but different line
- widths were printed one immediately after the other.
-
- * The View->Outline checkbox menu item now reflects the outline status
- correctly
-
- * The eval() security hole in the xfig import filter should be plugged
- now.
-
- * The "Update From..." button in the plugin object dialogs works now.
-
- * Fixed a bug that caused objects to share fill patterns when assigning
- fill properties to several objects at once. E.g. assigning an axial
- gradient to two objects and then transforming one of the objects
- would modify the gradient of he other object as well.
-
- * Changed a few places where pointers were cast to ints to support
- 64bit systems properly (reported by Philipp Reisner).
-
- * Fixed the AFM file parser to accept floating point numbers in various
- places as the specification says (reported by Rainer Menzner).
-
- * Fixed a bug where the selection info wasn't updated properly. To
- reproduce it in 0.6.5: Select the text tool and click somewhere but
- don't type anything. Select the text tool again and click somewhere
- else, type something, go to selection mode and press DEL. (reported
- by Darren Stalder)
-
- * In mainwindow.py, bzip2 isn't called with the -c flag anymore. that
- flag isn't necessary here anyway and some bzip2 versions didn't like
- it. (reported by Michael Lossin)
-
- * Cutting/copying and pasting path text objects works now. (reported by
- Michael Lossin)
-
-Internal Changes:
-
- * In preparation for Python 1.6, checked for and corrected list appends
- with more than one argument.
-
- * Initialization is a bit simpler now. Programs that use Sketch as a
- library no only require that the Sketch module is in sys.path and
- they have to call Sketch.init_lib(). If they want to use the Tk part
- of Sketch as well they have to call Sketch.init_ui() which implicitly
- also calls init_lib().
-
- * The default properties for Text-objects created by scripts have
- changed. They used to have an empty fill pattern, but a black
- outline, which doesn't make sense and really was a bug. Now they have
- a black uniform fill and no outline.
-
- * The po files are now created with xpot from po-utils. See po/README.
-
- * The wrapper object for safe scripts doesn't complain about __cmp__
- and __coerce__ anymore.
-
-
-Sketch 0.6.5 (February 10th, 2000)
-==================================
-
- * "Snap To Objects" now also works for raster images and eps files.
- They can even be used as guides by moving them onto the guide layer.
- They behave just like rectangles in this regard.
-
- * bzip2 compressed sk-files (and also ai and svg) can now be
- uncompressed transparently if bzip2 is installed. The same
- functionality for gzip was already present in 0.5.0.
-
- * A new example script, Script/save_selection.py that saves the current
- selection as an eps file.
-
- * More accurate papersizes for the A<n> formats, contributed by Martin
- Glaser. The sizes used to be derived from first principles, so to
- speak, everytime on start up, but that does not yield exactly the
- same values that the standard defines. The old code is still there in
- Sketch/Graphics/papersize.py, if you're curious.
-
- * The way paper formats are stored in the sk-files has changed
- slightly. Only formats of a fixed list are stored by name now, for
- all others only the dimensions are saved. This was done to prevent
- problems if users add new formats in their userhooks.py.
-
- * The 'layer up' button in the layer dialog works now.
-
- * The DSC parser, used for e.g. extracting the bounding box of EPS
- files, can cope with non-Unix line separator conventions.
-
- * Fixed a bug in the code that draws axial (linear) gradients on the
- screen. In some cases the direction of diagonal the gradients was
- incorrect, most noticable for very large border values. Postscript
- output was not affected.
-
- * Removed .ps and .eps from the list of possible file name extensions.
- They misled users to assume that File->Open was the way to load EPS
- files.
-
- * The --imaging-include option of setup.py should work properly with
- relative filenames now.
-
- * Removed the GPL copyright notices from Pax/clipmask.[ch] because they
- shouldn't be there. Those files have the same license as the rest of
- the code in Pax.
-
- * Fixed a typo in Resources/Fontmetrics/gs.sfd. The font in line 2 is
- URWGothicL-Book
-
- * "Zoom Out" was translated incorrectly in de.po
-
- * Added -lm to _sketchmodule in Sketch/Modules/Setup.config and
- Sketch/Modules/Setup.in
-
-
-
-
-Sketch 0.6.4 (January 11th, 2000)
-=================================
-
- * Fixed a bug in Sketch's postscript procset
- (Resources/Misc/sketch-proc.ps) that caused problems when a
- sketch-eps that contains eps's that use showpage was embedded in a ps
- file which was then run through psnup (got that? :) ) To reproduce
- it, create an eps with dvips, embed it in a Sketch drawing, export as
- eps, embed it in a tex-document, create a psfile from that with dvips
- and 'psnup -2' it. The resulting psfile executes a superfluous
- showpage at the end of the embedded tex-eps.
-
- * Blending of two path-text objects works now. In previous versions
- attempting this would leave the document in an inconsistent state and
- the user couldn't undo the operation or even save properly.
-
- * Fixed bugs in the type1 font file parser and the underlying
- postscript tokenizer. Some type 1 font files caused segfaults in the
- tokenizer (e.g. the UTB_____.pfa font that comes with X11).
-
- * Updated Spanish translation provided by Esteban Manchado Velázquez.
-
- * More color icons provided by Panos Katsaloulis. Again, if you want to
- use them, put the line
-
- preferences.color_icons = 1
-
- into ~/.sketch/preferences.py .
-
- * Misc/export_raster.py: additional boolean parameter for the
- export_raster and export_alpha functions, use_bbox. If use_bbox is
- true only render the contents of the bounding rectangle, otherwise
- render the entire page.
-
- * Added Misc/Symbolgroup/, a plugin-object that can be used to build a
- simple symbol library. See Misc/Symbolgroup/README for more details.
-
- * setup.py: Give a more meaningful error message if _tkinter is not
- configured in Python's Setup
-
- * The mkfontdb.py script can also generate ghostscript Fontmap files
- now thanks to Jeffrey Boser. The script is now at version 1.3.
-
-
-Sketch 0.6.3 (December 1st, 1999)
-=================================
-
- * The default properties for new objects can be set now by pressing the
- apply button in the fill-, line- and font-dialogs when no object is
- selected. Sketch will ask whether graphics objects or text objects
- should be affected. You can select both, of course.
-
- If you don't like this behavior, you can switch it off by putting the
- following line into your ~/.sketch/preferences.py:
-
- preferences.set_default_properties = 0
-
- * A new button in the lower left corner of the main window (with an X
- bitmap) that is equivalent to Style/No Fill when pressed with the
- left mouse button and equivalent to Style/No Line when pressed with
- the middle mouse button.
-
- * When editing bezier curves, the ctrl-key now restricts the movement
- of nodes to horizontal and vertical and when dragging a control
- point, the angle of the tangent is restricted to multiples of 15
- degrees.
-
- * When drawing bezier curves the ctrl-key now restricts the slope of
- the tangent to multiples of 15 degrees.
-
- * When drawing poly-lines, the ctrl-key now restricts the slopes of the
- lines to multiples of 15 degrees.
-
- * Selecting a blend group works a little different now, so that
- clicking on the interpolation selects the entire blend group. In
- earlier versions only the interpolation object was selected in that
- case. Clicking on a control object of a blend group still selects
- just the control object. (The blend group object contains both the
- control objects and the interpolation objects).
-
- The reason for this change is that it makes it easier to select two
- blend groups to create an interpolation betweem them.
-
- The change also affects the blend dialog if the selected blend group
- has more than one control object. To change the number of steps in an
- interpolation you have to select the interpolation object by holding
- Ctrl and Shift when clicking on the object, just like you would with
- a normal group to select a contained object.
-
- * A small change in the way Sketch determines which handle to drag when
- editing a bezier curve: When a node and one of its control points
- coincide, it was impossible to drag the control point. Now Sketch
- selects the control point in that case. Coinciding nodes and control
- points can occur when gridding is on and they're often found
- Illustrator files.
-
- * There's a new directory Misc/ that contains some scripts that I use
- occasionally. These scripts are somewhat unpolished and will probably
- need some tweaking to fit your needs.
-
- I also consider them 'half-supported', that is I test and fix them
- only as far as I actually use them.
-
- There are two scripts at the moment. One lets you export raster
- images via ghostscript, and the other reads paths exported by Gimp.
-
- * A small reorganization of the sfd files in Resources/Fontmetrics. The
- Charter and Utopia fonts are now listed in a separate file gsopt.sfd.
-
- The rationale behind this is that std.sfd contains the standard
- postscript files--in as far as that can be defined--like Times-Roman
- or Courier. gs.sfd lists the URW fonts that make up the standard
- ghostscript fonts, which are basically clones of the standard
- postscript fonts. gsopt.sfd lists optional ghostscript fonts.
-
- * The afm-file parser is more tolerant now. It had problems with empty
- lines.
-
- * fixed a bug that made the context command 'Select Mask' fail.
-
- * fixed a bug that caused the first few characters of a path-text to be
- misplaced if the start position coincided with a node (but not the
- start-node) of the curve-object.
-
- * Fixed a small bug in the cmxfilter that flipped the orientation of
- conical gradients.
-
- * The command line option --version works again.
-
- * There a new option for ~/.sketch/preferences.py, fallback_font. This
- is the name of the font to use when a font or the corresponding
- metrics can't be found. The default is 'Times-Roman'
-
- * Added a note about the slightly broken pyimglib package in SuSE Linux
- 6.2 to the INSTALL file.
-
- * Fixed a few typos in the German translation.
-
- * Updated Spanish translation provided by Esteban Manchado Velázquez.
-
- * Added a new section about export filters to the developer's guide.
-
- * setup.py parsed macro definitions in Setup incorrectly. This is fixed
- now. I also documented the --python-setup option.
-
- * setup.py's build command accepts arguments of the form <KEY>=<VALUE>
- now. These are passed through to make to let you override variables
- like CC or OPT. See the generated Makefiles or Makefile.pre.in for
- more details.
-
- * The mkfontdb.py script knows a few more foundries and has a new
- commandline option '-f' to specify the foundry used when it can't be
- determined from the afm-file. I also increased its version to 1.2
-
-
-
-Sketch 0.6.2 (September 19th, 1999)
-===================================
-
- * Import/Export filters for the proposed Web-standard for vector
- graphics, SVG. For the import filter, but not for the export filter,
- you need the Python xml-package; see the INSTALL file for details on
- where to get it.
-
- Both filters are very primitive at the moment and only handle some
- simple shapes and fills/strokes. In particular, there's no support
- for Text or gradient fills among others yet.
-
- * Cleaned up the documentation to have less practically empty
- HTML-files and extended the section on font-configuration. It
- contains information about Sketch's font-path and on how to add
- fonts.
-
- * Converted the images in the docs to the PNG format.
-
- * When editing text objects, you can position the caret with the mouse
- now.
-
- * The create_star script is now interactive. It pops up a modal dialog
- asking for the parameters of the star as an example how to use
- dialogs is user scripts.
-
- * The sample scripts select_same_line_color.py and
- select_same_fill_color.py are substantially faster now if there's a
- large number of objects to be selected.
-
- * The help message in setup.py is more compact now, thanks to Gregor
- Hoffleit.
-
- * Fixed a bug in the XFig filter that lead to the rejection of files
- with "Flush Left" justification (as generated by pstoedit, for
- example).
-
- * The AI import filter handles text in ai-files generated by ps2ai
- better now.
-
- * The AI filter understands font encodings now.
-
- * Fixed Sketch/Modules/skrect.c and Sketch/Modules/skcolor.c to avoid
- Problems with GCC 2.95.
-
- * Fixed Sketch's font code to not require the EncodingScheme key in
- afm-files. This key is optional and is not present in afm-files
- generated by ttf2pfa, for instance.
-
-
-
-Sketch 0.6.1 (August 5th, 1999)
-===============================
-
- * Spanish messages contributed by Esteban Manchado Velázquez.
-
- * Color Icons contributed by Panos Katsaloulis. They're not used by
- default because the set of icons is not complete yet. If you like,
- you can switch them on by putting the line
-
- preferences.color_icons = 1
-
- into ~/.sketch/preferences.py .
-
- * The cursor now changes when the mouse is over a selected object or a
- guide line. You can switch this feature off by adding the line
-
- preferences.active_cursor = 0
-
- to ~/.sketch/preferences.py .
-
- * The AI export filter handles axial and radial gradients now.
-
- * The AI import filter understands gradients better now. In particular,
- it can handle AI files with gradients created by Corel Draw correctly
- now (I hope).
-
- * The AI import filter knows about guides and places all guides in an
- AI-file on the guide layer. In former versions the guide paths were
- mixed with normal paths resulting in incorrect paths.
-
- * The CMX import filter also loads radial and conical gradients now (in
- addition to axial gradients).
-
- * Fixed the bug that caused multiple handles at the same position to
- become invisible in some situations.
-
- * Two new sample scripts, create_star and create_text.
-
- * I added a section to the user scripts documentation, covering 'common
- tasks' like the creation of objects, manipulating objects and
- manipulating the current selection.
-
- * The postscript file generated for a landscape drawing now has a
- %%Orientation: Landscape comment, if the 'rotate ccw' button is
- checked.
-
- * Updated paxtkinter to work with Tcl/Tk 8.1.
-
-
-Sketch 0.6.0 (May 18th, 1999)
-=============================
-
- * Support for non-english messages via gettext. Run setup.py with the
- '--with-nls' option to activate this. So far there's only support for
- German.
-
- If you want to add support for a new language, have a look at
- po/README.
-
- * The symbolic links created by `setup.py install' use relative
- filenames now.
-
- * The Developer's Guide has some more documentation on how to implement
- import filters
-
- * The Illustrator export filter handles embedded raster images and
- some text.
-
- * The Illustrator import filter handles some embedded raster image formats.
-
- * Fixed a bug when placing objects (e.g. raster images) while in
- creation mode.
-
- * Fixed a bug in the PostScript generator, that could lead to wrong
- fill/stroke colors.
-
- * When drawing poly-lines and you start with just a mouse-click and no
- drag, only only the starting point is defined. If you drag, the first
- two points are defined.
-
- The old behavior was to always create the first two points which
- resulted in zero-length first segment if the mouse wasn't dragged.
-
- * The reset button in the align dialog has been removed. To switch off
- alignment in one direction, click on the sunken button.
-
- * The Type1 font parser is smarter. The old parser had problems with
- fonts using Mac line separators.
-
-
-
-Sketch 0.5.5 (April 22nd, 1999)
-===============================
-
-* Improved import filters:
-
- - AI import filter has some text support now for point text and path
- text and it handles transformed gradients slightly better
-
- - The WMF import filter is much more stable and complete now. The
- version distributed with 0.5.4 was very incomplete and buggy.
-
- - The CMX import filter is much more stable and complete now. The
- version distributed with 0.5.4 was very incomplete. The new version
- suports 32 bit files.
-
-* The rulers now obey the default unit settings.
-
-* The vertical rulers can display the text either horizontally,
- vertically (similar to GTK) or rotated (my favourite). The default is
- horizontally.
-
- You configure this by appending
-
- preferences.ruler_text_type = TYPE
-
- to ~/.sketch/preferences.py (edit this file while Sketch is not
- running). TYPE can be either 'horizontal', 'vertical' or 'rotated'
- (including the quotes!).
-
- The font for the rulers is determined by preferences.ruler_font for
- normal horizontal characters and preferences.ruler_font_rotated for
- rotated text. The default values are:
-
- preferences.ruler_font = '-*-helvetica-medium-r-*-*-10-*-*-*-*-*-iso8859-1'
- preferences.ruler_font_rotated = '-*-helvetica-medium-r-*-*-[0 10 ~10 0]-*-*-*-*-*-iso8859-1'
-
- If you use rotated text, ruler_font_rotated must be compatible with
- ruler_font, i.e. one must be a rotated version of the other.
-
- The '[0 10 ~10 0]' is a transformation matrix which rotates the
- characters by 90 degrees counter clockwise. This syntax was introduced
- in X11R6, so to use this your X server must be compatible with that
- X11 release.
-
- Depending on the quality of your font renderer and your
- X-configuration, the rotated fonts might look quite ugly, so you might
- have to test a number of different fonts to get good results. On my
- system, these settings are quite acceptable:
-
- preferences.ruler_font = '-*-lucida-medium-r-*-*-11-*-*-*-*-*-iso8859-1'
- preferences.ruler_font_rotated = '-*-lucida-medium-r-*-*-[0 11 ~11 0]-*-*-*-*-*-iso8859-1'
- preferences.ruler_text_type = 'rotated'
-
-
-* The align dialog allows you to align the selected objects relative to
- the lowermost one. It would probably be better to use the first
- selected object instead, but that's not possible with Sketch at the
- moment, due to its implementation.
-
-* Fixed a byte order bug that resulted in wrong colors for images on a
- big-endian X-server.
-
-* Fixed some mask-group bugs: The Effects| Create Maskgroup entry is now
- grayed out correctly again and ungrouping the mask group places the
- mask on top of the objects now. Both bugs were introduced when I
- changed the behaviour of Create Maskgroup for Sketch 0.5.3.
-
-* The AddFunction function of the script-registry has a new keyword
- parameter 'args'. See the user's guide for more details.
-
-* If you delete all characters of a text object (with backspace or DEL)
- and then select a different object or change into another mode, the
- now empty text-object is removed from the drawing.
-
-
-Sketch 0.5.4 (March 17th, 1999)
-===============================
-
-* A user scripting facility. The user's guide has a new section about
- user scripts to get you started. The mechanisms to hook user scripts
- into Sketch are somewhat experimental, though and may change.
-
-* A new import filter for Corel's CMX format. The filter is incomplete
- and only handles 16bit CMX files, because I only have sample files for
- that CMX-version.
-
-* A new import filter for Windows Metafiles (WMF), again incomplete.
-
-* The tooltips are active by default now.
-
-* Setting the unit of the position indicator in the status bar (via its
- context menu) also sets the default unit used else where in Sketch.
-
-* The dimensions of rectangles and ellipses are now given in the current
- default unit.
-
-* When creating ellipses or rectangles the current dimensions are
- displayed in the statusbar.
-
-* Similarly, when transforming an object, information about the current
- transformation is displayed in the statusbar, such as scaling factors
- and rotation angles.
-
-* The ellipse drawing mode has two new variations:
-
- - When holding down Shift, the ellipse is centered at the start point.
-
- - When holding down Shift+Ctrl, the ellipse is a circle centered at
- the start point with the current pointer position on its periphery.
-
-* Similarly, holding down Shift while drawing a rectangle uses the
- start point as the center of the rectangle.
-
-* Path-text has been improved, introducing a slight incompatibility:
-
- - Characters that don't fit on the path are simply not drawn, but they
- are still there. In previous versions, these characters were all
- drawn at the same position at the end of the path.
-
- It is possible that path-text objects will look slightly different
- in future versions due to improvements in the algorithms used. In
- particular, multiple subpaths in a curve may be supported.
-
- - You can drag the start position of the text along the path by
- dragging the small rectangular handle in edit mode. This is probably
- not the best interface. Suggestions welcome.
-
- - In previous versions, the curve-like objects were automatically
- converted to bezier objetcs before the path-text group was created.
- Now, these objects remain as they are, i.e. rectangles will remain
- rectangles and ellipses remain ellipses.
-
- .sk files with rectangles or ellipses as the curves in path-text
- objects will not be read correctly by earlier versions.
-
-
-* You can now insert nodes and cut curves at specific positions:
-
- - Select a curve object in edit mode
-
- - click on the outline where you want to insert the node or cut the
- curve. A small filled circle appears.
-
- - Select "Curve | Insert Nodes" or "Curve | Cut Curve" respectively.
-
- This new method also affects Line->Curve and Curve->Line. They convert
- the segment marked with the filled curve.
-
- The old behaviour is still there.
-
-* The curve-object in a path-text object and the control-objects in a
- blend-group can now be converted to a bezier object in place.
-
-* Added a few new key-strokes.
-
-* The .sk file version number was updated to "1 2" because of the
- changes for path-text objects.
-
-* Bug fixes:
-
- - In the font dialog, the sizes list is updated together with the entry
- widget.
-
- - "Update From..." in the font dialog works now.
-
- - Images loaded from the same image file share the raster data again.
-
-* Renamed the script mkfontdir.py to mkfontdb.py. This new version
- creates fonts.scale files by default now and is also distributed
- separately from Sketch. It's now distributed under the GPL and not the
- LGPL.
-
-
-Sketch 0.5.3 (February 7th, 1999)
-=================================
-
-* Sketch now has an experimental configure, build and install script.
- This script is modelled after the proposed standard for Python
- packages and applications currently discussed in the Python distutils
- SIG, although it's not much more than a wrapper around the old
- makefiles.
-
- For details on its use, see the INSTALL file.
-
-* Python 1.5.2 compatibility:
-
- I've run Sketch with the 1.5.2b1 release for more than two weeks now,
- and almost everything works as before, with these exceptions:
-
- The stricter syntax check for functions with default arguments
- produced syntax errors in two places. These have been corrected.
-
- The new sorting order for objects of different types revealed an error
- in the example file line.sk. This file is fixed in the new release.
- The skloader should really make more checks during import.
-
-
-* The Drawing modes are now permanent by default. They were mentioned as
- permanent in the NEWS for Sketch 0.5.2, but this was not really true.
- Whether they are permanent or temporary is configurable, and the
- default was `temporary'. To make them temporary again append the line
-
- preferences.creation_is_temporary = 1
-
- to the file ~/.sketch/preferences.py. This file (and the directory)
- will be created automatically by Sketch after it has run. Editing the
- preferences file works only if Sketch is not running, because Sketch
- always writes it on exit.
-
- This option will be moved into the Options-dialog someday.
-
-
-* If you feel adventurous, you can try the tooltips feature, by adding
- the line
-
- preferences.activate_tooltips = 1
-
- to ~/.sketch/preferences.py. I hacked the code recently to make it
- work again, but it probably still has some bugs.
-
-
-* There's an Illustrator export filter. To save a file in this format,
- select File|Save As... and supply a filename ending in '.ai'. Due to
- limitations in the standard Tk file dialog, selecting the Illustrator
- format in the file type option menu is not sufficient or even
- necessary.
-
- The current filter is incomplete.
-
-
-* Rectangles may have rounded corners now. To create rounded corners,
- select a rectangle in edit mode and drag one of the corners.
-
-* The .sk file version number was updated because of the rounded corner
- rectangles.
-
-* Bezier curves (including poly lines) can now be used as guides. Move
- them to the guide layer and activate Arrange|Snap to guides. This
- already worked for ellipses and rectangles.
-
-* When drawing polylines, the first click-drag-release creates the first
- line and not just the staring point.
-
-* When creating a mask group, the topmost object becomes the mask. This
- is more intuitive, I think, than the lower most used before.
-
-* To create guide lines, you can now simply drag from the rulers into
- the canvas just as in Gimp or CorelDraw.
-
-* To delete a guide line just drag it and drop it somewhere outside of
- the canvas.
-
-* A new command File|Insert Document lets you load a vector drawing in
- any of the supported formats and insert it into the current document
- as a group. You can then ungroup and edit it.
-
-* The default unit for lengths is now configurable via the options menu.
- This does not affect the rulers yet.
-
-* The current position in the status bar shows the snapped position now
- if snapping is active.
-
-* Blending of two closed curves with differing numbers of segments
- produced ill-formed bezier curves. This is now fixed, but results in
- sligthly different blend groups as before in this special case.
-
-* Converting a text object to curves results in a group with separate
- bezier objects for the characters (instead of a single multi-path bezier
- object).
-
-* Two new window commands. Windows|Hide Dialogs hides (withdraws) all
- dialogs currently visible and Windows|Show Dialogs shows them again.
-
-* Added a few new commands to the context menu for fill and line
- properties.
-
-* A new command to select all nodes of a bezier object. Available from
- the Curve menu and from the context menu.
-
-* Snapping of guide lines works properly now.
-
-* If you want 'live' scrolling in the drawing area, where the display is
- updated while the scrollbars are dragged, add this to your Xresources:
-
- sketch*canvas_frame.Scrollbar.jump: 0
-
- The current release is not optimized for this, though, so it might be
- too slow.
-
-* various bug fixes
-
-
-
-
-Sketch 0.5.2 (December 09th 1998)
-==================================
-
-* Sketch contains a work-around for a bug in the Python 1.5.1 module
- import code that affected Sketch's import filters.
-
-* An improved AI import filter with a faster and better parser. It is
- still not complete. See the comments in Plugins/Filters/ailoader.py
- for more details about the implemented features and limitations.
-
-* A new (and experimental) print dialog is available via 'File/Print...'
-
-* The script sk2ps.py works.
-
-* The return value of XClearArea is ignored now, because XClearArea is
- declared void on SGIs.
-
-* In the layer dialog, the context menu has been reorganized a bit and
- contains some layer specific entries ('Grid...' for the grid layer
- (the same as Arrange/Grid...) and 'Guide Lines...' for the guide layer
- (the same as Arrange/Guide Lines...))
-
-* In the layer dialog , some of the buttons are grayed out if the
- corresponding layer attribute cannot be changed (e.g. the grid layer
- is always locked).
-
-* The test for X shared memory images should work properly now.
-
-* fixed the bug where images rotated by exactly 90 degrees were not
- drawn.
-
-* the drawing modes (create curve, create rectangle, etc) are now
- permanent. You have to switch to edit-mode or selection mode
- explicitly.
-
-* Switching between modes is now easier. The buttons for edit/select
- mode and for drawing are now `radiobuttons' and provide both a means
- to switch from one mode to another and an indicator for the current
- mode.
-
-* the button for snap to grid now changes its relief from flat to sunken
- if snapping is active (instead of changing its bitmap).
-
-* Added a label to the statusbar that indicates whether the drawing was
- modified since the last save or since it was loaded/created.
-
-* _sketchmodule.so doesn't use drem anymore. (drem is not available on
- Solaris)
-
-* The color allocation strategy for PseudoColor displays is
- configurable. The option is not available from the dialog yet.
-
-
-
-Sketch 0.5.1 (November 08th 1998)
-==================================
-
-* The bezier related commands of the arrange menu are now in the curve
- menu.
-
-* Sketch now asks for confirmation (again) when the window is closed via
- the window manager. File/Exit did work correctly.
-
-* sketch will print more diagnostic messages by default.
-
-* the code in Sketch/Modules has been rearranged to increase
- portability. Interdependencies between compiled modules are now
- handled in a portable way.
-
-* The test for X shared memory images should work properly now.
- Compiling the paxmodule without shared memory support is now possible.
-
-* sketch used to hang in an infinite loop if a font was not available on
- the X-server and a MessageBox was popped up with an error message.
-
-* Ctrl + cursor keys scrolls the viewport
-
-* the drag&drop bug, when dragging a color from the palette to the
- pattern widget in the fill panel, has been fixed.
-
-* fixed Doc/fonts.scale to agree with Doc/fonts.alias
-
-
-
-Sketch 0.5.0 (October 31st 1998)
-=================================
-
-first public release
Deleted: skencil/branches/skencil-0.6/PROJECTS
===================================================================
--- skencil/branches/skencil-0.6/PROJECTS 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/PROJECTS 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,233 +0,0 @@
-Here are some of the more ambitious projects for the development of Skencil:
-
-
-Color Management (Gamma Correction)
-===================================
-
-
-Implementing this might be quite complicated. First of all, colors
-should be represeneted in a device independent manner. SKColor objects
-are currently simply RGB-triples. These could be considered device
-independent only for an ideal device with a gamma value of 1.0.
-
-The internal color representation should use a CIE based color model.
-
-Color managment comes in in various places:
-
- - drawing vector primitives in the window. color objects should be
- mapped to device colors on the fly (maybe via a lookup table or using
- some caching techniques)
-
- - drawing bitmap images. This is not trivial, since some images might
- already be converted to CRT device colors, while others may not. Even
- though some formats may contain information about this, it should be
- ultimately up to the user to specify whether and how color correction
- should be applied to a given image.
-
- - Printing/EPS. We should probably assume that the printer or whoever
- interprets the data does its own color correction, so we should use
- device independent colors there.
-
- - importing from other vector formats. Whether any color conversion has
- to be done depends on the particular format to be imported. XFig
- files for instance have device dependent color specifications and
- should be converted. The user should be able to specify the gamma
- value used for conversion independently from the gamma value used for
- the display in sketch.
-
- - exporting to other formats (vector and bitmap). Again, sketch's
- behaviour depends on the format involved, so the same considerations
- as for importing apply.
-
-Adding color correction affects sketch documents stored with the current
-color representation. In particular gradients and blendgroups that are
-recomputed after loading would be different, because currently color
-interpolations are done in RGB-space. With color management they would
-probably be done in the device independend color space, but that could
-probably be optional.
-
-A complete solution for would require support from X (for the display)
-and from Linux or rather the printing subsystem (for printing).
-
-
-
-Support For Plugin Modules/Objects
-==================================
-
-(the basic functionality is already implemented)
-
-
-Plugin objects
---------------
-
-Plugin objects should be compound objects derived from a special class.
-
-To allow saving and loading of these objects even when the plugin is not
-installed, the plugin object should save all its components like a group
-and put all plugin specific information into the constructor. This could
-be done like this:
-
-.
-.
-.
-object('ClassName', param1, param2, ..., key1 = arg1, ...)
-<object1>
-<object2>
-.
-.
-.
-endobject()
-.
-.
-.
-
-If the object type ClassName is not known, this object is treated like
-an ordinary group. Actually, this could be a special object class that
-behaves like a group from the user's point of view but stores the plugin
-specific information. That way it could be saved like a plugin again,
-if it is not changed (i.e. ungrouped or otherwise edited.
-
-Other plugins should be treated in a manner that allows sketch to
-simulate them as much as possible if the plugin is not installed.
-
-Ideally, the ClassName has to be unique. There should be a naming
-convention to facilitate this (maybe including a registry for `official'
-plugins). Also, any name conflicts should be handled as gracefully as
-possible with the object treated like an unknown plugin if errors occur.
-
-Some ideas for plugins:
-
-- A Graph object (a la GNUPlot, etc). This could be very complex...
-
-- A Frame object (with subobjects for the corners and the sides that
- behaves in a special way when the frame is resized)
-
-- Additional patterns (they would have to be converted to a builtin
- pattern if the plugin is not available)
-
-- Additional edit commands (these don't affect load/save)
-
-- Plug-ins for new file formats (XFig, Tgif, ...)
-
-
-If possible there should be a `lazy' import mechanism for plugins to
-reduce memory demand.
-
-
-
-Export filters
---------------
-
-They could be implemented in three ways:
-
- 1. As classes implementing the same interface as SKSaver.
-
- This allows to use the capabilities of the target format to
- their full potential. Advanced features like blend groups or
- even gradient fills and compound objects could be preserved if
- the format supports them. The disadvantage of this approach is
- that SKSaver's interface is closely related to the internal
- document structure (and to some degree to the SK-format). Every
- time the structure changes, the interface changes too.
-
- 2. As graphics devices.
-
- The advantage of this approach is that the interface of the
- graphics devices changes only infrequently. The filters won't
- have to be updated as frequently as for the other model. A
- disadvantage is that the graphics device is relatively low
- level. Graphics devices don't know about compound objects (like
- layers or groups) so this information would be lost.
-
- 3. The filter traverses the object hierarchy on its own.
-
- This is the most flexible approach, though it would require that
- the filter knows a lot about the internal structure of the
- document.
-
- This is not really as bad as it seems at a first glance. A
- simple implementation treats all compound objects, easily
- identified because their is_Compound attribute is true, like
- groups and rectangles (with sharp or round corners) and ellipses
- like bezier objects (just test whether an objects is_curve
- attribute is true and use its AsBezier method).
-
-The best approach would probably be to use the third model for complex
-formats and the second for very simple formats (simple in their
-structure, not necessarily their graphics capabilities).
-
-
-Import/Export Filters
----------------------
-
-Formats that should be supported by filters included in the standard
-distribution:
-
-Format Method Implemented
------- ------ -----------
-XFig (+) 3 read (incomplete)
-Tgif (+) 3
-Adobe Illustrator 3 read/write (both incomplete)
-
-PostScript 2 write (read via pstoedit)
-Bitmap files (*) 2 write (very experimental)
-LaTeX (%) 2
-
-less important and perhaps impossible (because of lack of documentation):
-StarOffice (#) 3
-Applixware (#) 3
-CorelDraw (W#) 3
-WindowsMetafile (W+) 2 (might be read as a bitmap image with PIL)
-
-
-(+) These formats don't know bezier curves. (Windows Metafiles for W32
- might know, though)
-(*) Bitmap files could be created via PostScript/Ghostscript
-(%) Might be difficult because some of those formats are very limited
-(W) MS-Windows
-(#) Are these formats documented anywhere?
-
-Some formats don't have bezier curves. If they have other splines,
-bezier curves should (optionally) be approximated by those splines. If
-they don't have splines at all curves should be approximated by
-polygons.
-
-Also exporting MaskGroups and complex fill patterns (e.g. gradients) can
-be a problem since some formats are very simple and have no clipping
-capabilities or don't have the appropriate fill styles.
-
-Even exporting dash patterns and arrow heads is not trivial, since some
-formats only have a limited predefined set of such patterns and arrows
-(XFig and Tgif for example).
-
-
-
-Special Effects
-===============
-
-
-Calligraphic Effects
---------------------
-
-The user should be able to specify a non circular pen shape. Elliptical
-or rectangular pens would be desirable. This could be implemented by
-computing a polygon for a given curve and resolution and filling it with
-the line pattern. The polygon should be computed on the fly by the
-graphics device (with caching if that is too slow).
-
-An advanced feature would allow the pen shape to vary along the curve
-(it might be larger at one end, etc.).
-
-
-Transparency / Alpha Channel
-----------------------------
-
-Does anyone know how to do this efficiently in X and PostScript?
-
-
-More Shading Patterns
----------------------
-
-Have a look at the capabilities of PostScript Level 3. Especially the
-Gouraud shading, Coons-patches and tensor product patch meshes.
-
Deleted: skencil/branches/skencil-0.6/README
===================================================================
--- skencil/branches/skencil-0.6/README 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/README 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,213 +0,0 @@
-
-What Is Skencil?
-===============
-
-Skencil is an interactive vector drawing program for X (similar to XFig
-or tgif). It is written almost completely in Python, an object oriented
-interpreted programming language.
-
-This is a stable release. It is quite featureful and usable, but there
-are still things missing that I want in a 1.0 release, hence the low
-version number.
-
-To compile and run Skencil, you need some additional software. Have a look
-at the file INSTALL to see what you need and how to install Skencil.
-
-Skencil was originally named "Sketch" (it was renamed with release
-0.6.16) and the name "Sketch" is still used is many places.
-
-
-Resources:
-==========
-
-Change-Log:
-
- See the file NEWS and Plugins/ChangeLog for plugin specific
- changes
-
-Website:
-
- http://www.skencil.org
-
-Mailing Lists:
-
- Users:
-
- http://lists.sourceforge.net/mailman/listinfo/sketch-list
-
- Subscription through the web interface or by sending a mail with
- the word subscribe in the subject to
- <sketch-list-request at lists.sourceforge.net>
-
- Developers:
-
- http://mail.nongnu.org/mailman/listinfo/sketch-devel
-
-Bugs and Patches:
-
- https://savannah.nongnu.org/projects/skencil/
-
- Please report bugs to one of the mailing lists or through the
- bug-tracker
-
-
-Features
-========
-
-Skencil already has the following features:
-
- o Drawing primitives:
- o Rectangles, with optional round corners
- o Ellipses (full ellipses, arcs, pie slices, chords)
- o Bezier curves (single and multi path)
- o External images:
- o Raster images: JPEG, GIF,...
- (all types the Python Imaging Library can read)
- o Encapsulated PostScript (EPS)
- o Text
-
- o All objects, including images and text, can be rotated,
- scaled, sheared, etc. (all affine transformations are
- possible)
-
- o Primitives can usually have fill and line properties:
-
- o Fill properties are patterns like solid colors,
- gradients, tiled images and hatching.
-
- o Line properties are currently a (solid) color, width,
- dashes, cap and join styles and arrow heads. Patterns
- instead of a single color are planned for the future.
-
- o Special Effects and Features:
-
- o Bezier curves, rectangles and ellipses can be used as
- guides in addition to the standard vertical and
- horizontal guide lines.
-
- o Blend Groups: Automatically updated interpolations of
- arbitrary objects
-
- o Text can be converted to bezier objects. (This only
- works if skencil has access to the PostScript Type 1
- font files (pfa or pfb)).
-
- o Text along a Path
-
- o Export file-formats:
-
- o Encapsulated PostScript
-
- o Adobe Illustrator files
-
- o Scalable Vector Graphics (SVG)
-
- o Import file-formats:
-
- o XFig files (.fig) (incomplete)
-
- o Adobe Illustrator files (.ai)
-
- o Windows Meta File (WMF, Windows 3.1)
-
- o Corel's CMX
-
- o Scalable Vector Graphics (SVG)
-
- o Unlimited undo history
-
- o User scripts
-
-
-Limitations
-===========
-
-o Currently, only TrueColor visuals with depths of 15, 16, 24 or 32 bits
- and 8-bit PseudoColor visuals are supported.
-
-o Rotated and otherwise transformed text requires (as far as I know) at
- least X11R6. See below for more information on fonts.
-
-
-License
-=======
-
-Most of Skencil is released under the GNU Library General Public License
-(see the file COPYING for details). The only exceptions are the module
-Pax (in the Pax directory) and the stream filters (in the Filter
-directory). See the respective READMEs for details.
-
-
-Problems
-========
-
-There are some problems you may run into which can be solved by changing
-Skencil's configuration or the X-server's configuration.
-
-
-ImportError: No module named Image
-----------------------------------
-
-This message means that the Python Imaging Library (PIL) is not
-installed correctly. Follow the instrctions in the PIL README.
-
-
-
-Font Problems
--------------
-
-
-Exception TclError: font "..." doesn't exist
---------------------------------------------
-If you get a message like
-
- Exception TclError: font "[some text with lots of hyphens]" doesn't
- exist
-
-when browsing fonts in the font dialog, the reason is probably that
-Skencil tries to use fonts that are not installed in the X-server or the
-font server (if you use one). Refer to the ``User's Guide'' on how to
-install fonts and configure Skencil.
-
-
-
-Cannot load '[...]'
--------------------
-When Skencil tries to display the drawing, you get messages like
-
- Cannot load 'MyFont-Bold':
- no such font
-
-This can have two reasons:
-
-1. Skencil tries to use fonts that are not installed in the X-server.
- Refer to the ``User's Guide'' on how to install fonts and configure
- Skencil.
-
-2. Your server cannot handle transformed fonts or maybe not even scaled
- fonts. See the next section for details.
-
-
-
-Transformed Fonts
------------------
-
-To rotate, shear or otherwise transform fonts, Skencil relies on the
-capabilities of the server. This means, that the server has to be able
-to understand X font names of the form
- `-*-*-*-*-*--[0 0 0 0]-*-*-*-*-0-*-*'.
-
-The `[0 0 0 0]' stands for a matrix describing the transformation (the
-zeros are replaced by the coefficients of that matrix). Not all servers
-support this. To find out if a server supports this run xlsfonts(1) like
-this:
-
- $ xlsfonts -fn '-*-*-*-*-*--[0 0 0 0]-*-*-*-*-0-*-*'
-
-If your server supports this feature, a list of font names should be
-printed. You will probably get an error message otherwise.
-
-As far as I know, this syntax for transformed fonts was introduced in
-X11R6.
-
-
Deleted: skencil/branches/skencil-0.6/TODO
===================================================================
--- skencil/branches/skencil-0.6/TODO 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/TODO 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,323 +0,0 @@
-Things to do for Skencil
-(see also PROJECTS for larger and more ambitious things to do)
-
-
-New Graphics Features:
-======================
-
-Beziers / Curves / Polygons:
-----------------------------
-
-- a function that smoothes a polygon (mainly for importing) or poly
- bezier by reducing the number of nodes and adjusting the auxiliary
- nodes.
-
-- Boolean operators: Intersection, Union, Difference of bezier
- objects/paths.
-
- This can probably be implemented with a few functions that only work
- on curve objects. These would therefore be quite independent from the
- rest of Sketch.
-
-- take continuity at nodes between line and bezier segments into account
-
-Image Objects:
---------------
-
-- user-definable resolution. (now always 72dpi)
- The resultion is used to determine the intrinsic size of an image.
- In some cases the image file format may contain the relevant information.
-
-- More image processing
-
-Patterns:
----------
-
-- more hatching varieties: more lines, `transparent' color
-
-- vector patterns (that is, tiled images represented by graphics
- primitives (and which map more or less directly to PostScript
- patterns))
-
-- raster image patterns:
-
- - make the pattern trafo editable independently of the object.
-
-
-
-Other Graphics Features:
-------------------------
-
-- extend grid: have one major unit and a subdivision of that unit
-
-- userdefinable grid. Perhaps defined by plugin-grids
-
-- Maybe even multiple grid layers and guide layers.
-
-- multi-path arrows
-
-- clone objects
-
-- ideas for plugin objects
-
- - A plot object (function plot, data plot)
-
- - geometrical/mathematical objects:
-
- - spirals
-
- - fractals. at least those that are easily represented by vector
- primitives like L-Systems.
-
- - 3D objects: cubes, spheres, ...
-
- - extrusions
-
-- support for TrueType fonts.
-
- This would require an X-server or a font server that supports TrueType
- fonts or text rendering on the client side.
-
-- define circles by center and radius, or by two points (center and a
- point on the edge), or by three points. this might be implemented by
- plugin objects.
-
-- A dialog to directly set coordinates of lines, the dimensions of
- rectangles, ...
-
-
-Import/Export Filters:
-======================
-
-- bitmap export
-
-- some filters have options that the user should be able to set. (see
- the notes for a file dialog in the User Interface section)
-
-- when importing EPS-files:
-
- - Maybe read preview image and use that instead of an image rendered
- by ghostscript. (if ghostscript is not available or the user wants
- it that way)
-
- - resolution of rendered preview should be configurable
-
-- PostScript output:
-
- - optionally include a preview image in EPS. How do we render this?
-
-- PostScript import:
-
- - import as an EPS image is implemented. This image can only be edited
- as a whole (its size, position and orientation can be changed)
-
- - import via pstoedit (or some similar thing). This could be done
- transparently from the open command with an appropriate import
- filter. Files imported that way can be edited. pstoedit does not
- work correctly for every PostScript file (for instance: it ignores
- sampled images completely and doesn't understand tricks with
- gsave/grestore (like the ones used in postscript files generated by
- sketch)).
-
-
-User Interface:
-===============
-
-- The Ungroup command could also be Split Beziers if only one bezier
- object is selected
-
-- The current facilities for styles are insufficient. We need a better
- interface to let the user use styles to their full potential.
-
-- Save styles in a separate file (or files) so that certain styles can
- be used in several documents
-
-- The file dialog box should have a facility that lets the user set file
- format specific options. It might also have an optional preview
- window.
-
-- A Transformation Panel. One panel to let the user specify rotations,
- translations, scalings and arbitrary affine transformations. It should
- include an option to transform a duplicate of the selected object(s).
-
-- A Property panel that lets the user set node coordinates, radii and
- other dimensions.
-
-- edit patterns directly in the canvas. This allows more precise control
- especially for the gradient patterns.
-
-- allow the user to change the line width of hatching patterns
-
-- change the cursor to indicate snapping (change its form and/or color)
-
-- move the object with the cursor keys
-
-- Make the palette editable: add colors, remove colors, change colors...
-
-- define colors in various color models: RGB, HSV, ...
-
-- Let the user define new dash patterns
-
-- Let the user add new arrow heads
-
-- export as bitmap image (with preview). For best results, it should
- probably be done with ghostscript which allows advanced features like
- anti aliasing and it can always render true color images regardless of
- the capabilities of the Xserver (which could also be used to render
- the image).
-
-- Allow more than 4 MRU files...
-
-- Maybe have a tree view for the object hierarchy of a drawing
-
-- A clip art facility
-
-- Snapping to the grid/guide lines should also be controllable via the
- layers panel. Visibility of the grid might be tied to state of
- snapping.
-
-- Zoom out in zoom mode with mouse button 2.
-
-- Use a modifier+drag to create a copy.
-
-- Use shift+drag to resize/transform relative to the center of the
- object. Or resize/transform relative to the rotation center handle.
- This extended center should also be remembered by the object.
-
-- Have some help in the status bar or in a separate window. This could
- display things like 'Mouse 2 to end line'
-
-- Support Wheel mice.
-
-- maybe edit the grid parameters with the mouse.
-
-- Maybe snap to intersections of guides.
-
-- Align relative to a specific object which is not moved.
-
-- User defined origin. This would only be used to report coordinates to
- the user.
-
-
-Other Features:
-===============
-
-- WM_PROTOCOLS: SAVE_YOURSELF, etc
-
-- Autosave
-
-- More flexible backup files. Maybe like emacs ~NN~ optionally
-
-- page layout: margins
-
-- Objects should have some `meta' info, which should be saved to and
- read from files. Some of these meta attributes should have a
- standardized meaning, so that plugins would be able to use them.
- Examples:
-
- name: A name for the object. This could be used as an id in
- SVG files. OTOH, we should perhaps distinguish between a
- name and an id. A name would have no restrictions other
- than being a (unicode-) string whereas an id would have
- to be unique and perhaps have a specific format
- (compatible with XML, for instance).
-
- url: This can be used to create image maps when exporting to
- a raster image file or for SVG or PDF.
-
- center: The rotation or resize center.
-
-
-
-
-
-Implementation:
-===============
-
-- clarify the purpose and semantics of the methods Connect/Disconnect
- and TieToDocument/UntieFromDocument
-
-- Text objects should use the individual bounding boxes of the
- characters to detect hits.
-
-- make the bitmap renderer for the gradient patterns optional.
-
-- pax specific code (i.e. initialization from tk-object, a Tkinter
- baseclass for a PaxWidget, etc) should go into a python module
- provided by pax.
-
-
-Tk:
----
-
-- Look at Tk_RestrictEvents for a way to detect user events during
- redraw. This might also lead to a cleaner solution for the double
- scroll bug and a way to catch SHM-image notifications.
-
-GraphicsDevice:
----------------
-
-- There should be a ClipBox (or possibly a `protected' clip_box) method
- that returns the bounding box of the current clip region in device
- coordinates.
-
-
-Bezier Objects:
----------------
-
-- better behavior for degenerate cases when changing continuity to
- smooth or symmetrical
-
-- maybe more memory efficient undo info
-
-- implement the curve_check_state function
-
-C-Modules:
-----------
-
-- skpoint:
-
- - maybe convert from and to complex numbers? If that is implemented
- trafos should also accept complex numbers. This doesn't really add
- functionalty, it's just `syntactic sugar', and since complex numbers
- are not used anywhere in Sketch it's not useful to implement it
- right now.
-
-- sktrafo:
-
- - methods for computing the eigen vectors and/or eigen values. This
- could be used in the hit test for degenerate ellipses.
-
-
-
-Documentation:
-==============
-
-- add remarks about Acrobat Reader and the Times and helvetica fonts to
- the section about font installation
-
-- It should be possible to read linearly through each document by
- clicking on a "next" reference.
-
-
-
-Thoughts and Questions:
-=======================
-
-- When changing line attributes (pattern, width, join, cap,...), should
- objects with an empty line style be affected?
-
-- should objects with no outline and no fill be selectable by single
- click in normal display mode (not outline)? This can be confusing,
- since they are invisible.
-
-- MoveSelectionToLayer (in document.py) should distinguish three cases:
-
- - objects that are below the current layer should be inserted at the
- bottom of the current layer
-
- - objects that are above the current layer should be inserted at the
- top of the current layer
-
- - objects that are already in the current layer should not be moved at
- all
Deleted: skencil/branches/skencil-0.6/finishinst.py
===================================================================
--- skencil/branches/skencil-0.6/finishinst.py 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/finishinst.py 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,7 +0,0 @@
-#! /usr/bin/env python
-import os
-from compileall import compile_dir
-
-dirs = ['Sketch', 'Plugins', 'Pax']
-
-map(compile_dir, map(os.path.join, [os.getcwd()] * len(dirs), dirs))
Copied: skencil/branches/skencil-0.6/old_files/BUGS (from rev 700, skencil/branches/skencil-0.6/BUGS)
Copied: skencil/branches/skencil-0.6/old_files/COPYING (from rev 700, skencil/branches/skencil-0.6/COPYING)
Copied: skencil/branches/skencil-0.6/old_files/CREDITS (from rev 700, skencil/branches/skencil-0.6/CREDITS)
Copied: skencil/branches/skencil-0.6/old_files/ChangeLog (from rev 700, skencil/branches/skencil-0.6/ChangeLog)
Copied: skencil/branches/skencil-0.6/old_files/FAQ (from rev 700, skencil/branches/skencil-0.6/FAQ)
Copied: skencil/branches/skencil-0.6/old_files/INSTALL (from rev 700, skencil/branches/skencil-0.6/INSTALL)
Copied: skencil/branches/skencil-0.6/old_files/Makefile (from rev 700, skencil/branches/skencil-0.6/Makefile)
Copied: skencil/branches/skencil-0.6/old_files/NEWS (from rev 700, skencil/branches/skencil-0.6/NEWS)
Copied: skencil/branches/skencil-0.6/old_files/PROJECTS (from rev 700, skencil/branches/skencil-0.6/PROJECTS)
Copied: skencil/branches/skencil-0.6/old_files/README (from rev 700, skencil/branches/skencil-0.6/README)
Copied: skencil/branches/skencil-0.6/old_files/TODO (from rev 700, skencil/branches/skencil-0.6/TODO)
Copied: skencil/branches/skencil-0.6/old_files/finishinst.py (from rev 700, skencil/branches/skencil-0.6/finishinst.py)
Copied: skencil/branches/skencil-0.6/old_files/setup.py (from rev 700, skencil/branches/skencil-0.6/setup.py)
Copied: skencil/branches/skencil-0.6/old_files/sk2ppm.py (from rev 700, skencil/branches/skencil-0.6/sk2ppm.py)
Copied: skencil/branches/skencil-0.6/old_files/sk2ps.py (from rev 700, skencil/branches/skencil-0.6/sk2ps.py)
Copied: skencil/branches/skencil-0.6/old_files/skconvert.py (from rev 700, skencil/branches/skencil-0.6/skconvert.py)
Copied: skencil/branches/skencil-0.6/old_files/skencil.py (from rev 700, skencil/branches/skencil-0.6/skencil.py)
Copied: skencil/branches/skencil-0.6/old_files/skencil.spec.in (from rev 700, skencil/branches/skencil-0.6/skencil.spec.in)
Copied: skencil/branches/skencil-0.6/old_files/skshow.py (from rev 700, skencil/branches/skencil-0.6/skshow.py)
Deleted: skencil/branches/skencil-0.6/setup.py
===================================================================
--- skencil/branches/skencil-0.6/setup.py 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/setup.py 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,784 +0,0 @@
-#! /usr/bin/env python
-
-# Skencil - A Python-based interactive drawing program
-# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 by Bernhard Herzog
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-#
-# Configure Script for Skencil
-#
-# This script tries to figure out how to configure Skencil to work work
-# with your python installation.
-#
-# It is very experimental at the moment. In particular it is not as
-# generic as it could be and contains lots of hacks to make it work for
-# the current release.
-#
-
-import sys, os
-import re
-import glob
-import compileall
-import shutil, pipes
-
-from string import split, join, strip, atoi
-
-def abspath(path):
- if not os.path.isabs(path):
- path = os.path.join(os.getcwd(), path)
- return os.path.normpath(path)
-
-#
-# Part 1:
-#
-# extract config info from Python's modules Setup.
-#
-
-rx_comment = re.compile('^[ \t]*#')
-rx_macro = re.compile('^.*=')
-rx_ignore = re.compile(r'[ \t]*($|\*)')
-
-class ModuleConfig:
-
- def __init__(self):
- self.files = []
- self.inc_dirs = []
- self.macros = []
- self.lib_dirs = []
- self.libraries = []
-
-
-def read_target(args, setup):
- while args[-2:] == '\\\n':
- #print '->', args
- line = setup.readline()
- #print line
- if not line:
- break
- if rx_comment.match(line):
- continue
- args = args[:-2] + line
-
- config = ModuleConfig()
-
- for item in split(args):
- if item == '#':
- break
- head = item[:2]
- if head == '-I':
- config.inc_dirs.append(item)
- elif head == '-D':
- config.macros.append(item)
- elif head == '-L':
- config.lib_dirs.append(item)
- elif head == '-l':
- config.libraries.append(item)
- else:
- config.files.append(item)
-
- return config
-
-
-def extract_config(setup, configs = None):
- if configs is None:
- configs = {}
- setup = open(setup)
-
- while 1:
- line = setup.readline()
- if not line:
- break
- #print line
- if rx_comment.match(line):
- #print '==>> is comment'
- continue
- if rx_macro.match(line):
- #print '==>> is macro'
- continue
- if rx_ignore.match(line):
- #print '==>> ignore'
- continue
-
- #print '==>> is target',
- target, args = split(line, None, 1)
- #print target
- configs[target] = read_target(args, setup)
-
-
- return configs
-
-
-def print_configs(configs):
- for key, value in configs.items():
- print '********', key
- print 'file ', value.files
- print 'inc_dirs', value.inc_dirs
- print 'macros ', value.macros
- print 'lib_dirs', value.lib_dirs
- print 'libraries', value.libraries
-
-
-#
-# Part 2:
-#
-# Configure:
-# Convert Skencil's Setup.config to Setup
-#
-
-def find_include_dir(dir, header):
- try:
- files = os.listdir(dir)
- if header in files:
- return dir
- else:
- for file in files:
- file = os.path.join(dir, file)
- if os.path.isdir(file):
- result = find_include_dir(file, header)
- if result:
- return result
- except IOError:
- pass
- except OSError:
- pass
- return ''
-
-
-rx_replace = re.compile(r'@([a-zA-Z_0-9]+):([^@]+)@')
-
-setup_comment = '''\
-# This file was generated from Setup.config by setup.py
-# If you want to edit the configuration by hand, edit Setup.in and
-# copy it to Setup
-'''
-
-def convert(input, output, configs, flags):
- input = open(input)
- output = open(output, 'w')
- #output = sys.stdout
-
- output.write(setup_comment)
- write_nl = 0
- while 1:
- line = input.readline()
- if not line:
- break
- if rx_comment.match(line):
- continue
- while 1:
- found = rx_replace.search(line)
- if found:
- config_name = found.group(1)
- if flags.has_key(config_name):
- flag_name = found.group(2)
- config_flags = flags[config_name]
- if config_flags.has_key(flag_name):
- value = config_flags[flag_name]
- else:
- raise ValueError, 'Unknown flag %s:%s' % (config_name,
- flag_name)
- elif configs.has_key(config_name):
- config = configs[config_name]
- items = split(found.group(2), ',')
- value = []
- for item in items:
- if hasattr(config, item):
- value = value + getattr(config, item)
- else:
- raise ValueError, \
- 'Unknown config item %s:%s' % (config_name,
- item)
- value = join(value)
- else:
- raise ValueError, 'Unknown config type %s' % (config_name,)
- line = line[:found.start(0)] + value + line[found.end(0):]
- else:
- break
- if line[-2:] == '\\\n':
- line = line[:-2]
- write_nl = 1
- output.write(line)
- #print line
- if write_nl:
- output.write('\n')
- write_nl = 0
-
-def make_boot(dir):
- # run 'make -f Makefile.pre.in boot' in dir.
- if os.system('cd %s; make -f Makefile.pre.in boot PYTHON=%s'
- % (dir, sys.executable)):
- print "exiting because of errors"
- sys.exit(1)
-
-def configure_tkinter(configs, flags):
- # If --tk-flags was given on the command line, use those.
- if flags['tk']['flags']:
- configs['_tkinter'] = read_target(flags['tk']['flags'], None)
- return
- # For python < 2.1 just use the tkconfig from python's Setup, unless
- # the user explicitly requests auto-configure
- if (not flags['tk']['autoconf']
- and (atoi(split(sys.version, '.', 1)[0]) < 2 \
- or sys.version_info[:2] < (2, 1))):
- if not configs.has_key('_tkinter'):
- print "Your Python installation doesn't seem to be configured" \
- " with tkinter."
- sys.exit(1)
- return
-
- # We're running python 2.1 or higher or the user explicitly
- # requested auto configuratin for _tkinter. Try to figure out
- # which compiler flags to use just like python's setup.py does.
- import distutils.ccompiler
- compiler = distutils.ccompiler.new_compiler()
- configs['_tkinter'] = config = ModuleConfig()
-
- # first find the tcl/tk libraries. Assume that both the tcl and
- # tk libs have the same version and are located in the same lib
- # directory. Search under the directories listed in lib_dirs.
- lib_dirs = ['/usr/lib', '/usr/local/lib']
- print "Looking for tcl/tk libraries under %s..." % (join(lib_dirs, ' ,'),)
-
- # possible version suffixes. Some systems use dots in the suffixes
- # (e.g. debian), some don't (e.g. OpenBSD) so we try both.
- versions = []
- for version in ["8.4", "8.3", "8.2", "8.1", "8.0"]:
- versions.append(version)
- versions.append(version[0] + version[-1])
-
- # The actual search.
- for version in versions:
- print " Looking for tcl/tk %s..." % version
- tklib = compiler.find_library_file(lib_dirs, 'tk' + version )
- tcllib = compiler.find_library_file(lib_dirs, 'tcl' + version )
- if tklib and tcllib:
- print "found %s and %s" % (tklib, tcllib)
- # Exit the loop when we've found the Tcl/Tk libraries
- break
- else:
- print "Can't find suitable tcl/tk libraries"
- print "You should perhaps use the --tk-flags option"
- sys.exit(1)
-
- config.libraries = ['-ltk' + version, '-ltcl' + version]
-
- dir = "-L" + os.path.split(tklib)[0]
- config.lib_dirs.append(dir)
- dir = "-L" + os.path.split(tcllib)[0]
- if dir not in config.lib_dirs:
- config.lib_dirs.append(dir)
-
- # next, look for the header files
- std_inc_dirs = ["/usr/include/", "/usr/local/include"]
- inc_dirs = ["/usr/include/tk" + version,
- "/usr/include/tcl" + version] + std_inc_dirs
- print "Looking for tk header files in %s..." % (join(inc_dirs, ', '),)
- for dir in inc_dirs:
- dir = find_include_dir(dir, "tk.h")
- if dir:
- print "found them in %s" % dir
- config.inc_dirs.append("-I" + dir)
- break
- else:
- print "Can't find tk headerfiles"
- sys.exit(1)
-
- inc_dirs = ["/usr/include/tcl" + version] + std_inc_dirs
- print "Looking for tcl header files in %s..." % (join(inc_dirs, ', '),)
- for dir in inc_dirs:
- dir = find_include_dir(dir, "tcl.h")
- if dir:
- print "found them in %s" % dir
- if dir not in config.inc_dirs:
- config.inc_dirs.append("-I" + dir)
- break
- else:
- print "Can't find tcl headerfiles"
- sys.exit(1)
-
- # Finally, X compiler flags. 'Borrowed' from Python 2.1's setup.py
- platform = sys.platform
- if platform == 'sunos5':
- config.inc_dirs.append('-I/usr/openwin/include')
- config.lib_dirs.append('-L/usr/openwin/lib')
- elif os.path.exists('/usr/X11R6/include'):
- config.inc_dirs.append('-I/usr/X11R6/include')
- config.lib_dirs.append('-L/usr/X11R6/lib')
- elif os.path.exists('/usr/X11R5/include'):
- config.inc_dirs.append('-I/usr/X11R5/include')
- config.lib_dirs.append('-L/usr/X11R5/lib')
- else:
- # Assume default location for X11
- config.inc_dirs.append('-I/usr/X11/include')
- config.lib_dirs.append('-L/usr/X11/lib')
-
- # Finally, link with the X11 libraries
- config.libraries.append('-lX11')
-
-
-def configure(dirs, flags, setup):
- if not flags['sketch'].has_key('imaging-include'):
- print 'option --imaging-include=DIR must be provided'
- sys.exit(1)
- else:
- value = flags['sketch']['imaging-include']
- value = os.path.expanduser(os.path.expandvars(value))
- value = abspath(value)
- header = 'Imaging.h'
- print 'looking for include dir for %s under %s' % (header, value)
- dir = find_include_dir(value, header)
- if not dir:
- print header, 'not found under', value, '!'
- sys.exit(1)
- print 'found it in', dir
- flags['sketch']['imaging-include'] = '-I' + dir
-
- if setup == None:
- configdir = os.path.join(sys.exec_prefix, 'lib',
- 'python' + sys.version[:3], 'config')
- setup = os.path.join(configdir, 'Setup')
- setup_local = os.path.join(configdir, 'Setup.local')
- else:
- setup_local = ''
- print 'reading configuration from', setup, '...',
- configs = extract_config(setup)
- print 'done'
-
- if setup_local:
- print 'reading additional configuration from', setup_local, '...',
- configs = extract_config(setup_local, configs)
- print 'done'
-
- configure_tkinter(configs, flags)
- #if not configs.has_key('_tkinter'):
- # print "Your Python installation doesn't seem to be configured with "\
- # "tkinter."
- # sys.exit(1)
-
- for dir in dirs:
- file = os.path.join(dir, 'Setup.config')
- if os.path.isfile(file):
- out = os.path.splitext(file)[0]
- print 'converting', file, 'to', out, '...',
- convert(file, out, configs, flags)
- print 'done'
- make_boot(dir)
-
-#
-# Build
-#
-
-def make(dir, make_flags):
- # run 'make' in dir.
- return os.system('cd %s; make %s' % (dir, join(make_flags)))
-
-
-
-def build(makedirs, make_flags):
- for dir in makedirs:
- print "running 'make' in", dir
- if make(dir, make_flags):
- print "exiting because of errors"
- sys.exit(1)
-
-
-#
-# Install
-#
-
-rx_replace_dir = re.compile(r'@([a-z]+)')
-
-class InstallDirs:
-
- prefix = ''
- exec_prefix = ''
- executable = ''
- destdir = ''
-
- def __init__(self, flags):
- self.prefix = flags['standard']['prefix']
- self.destdir = flags['standard']['destdir']
- self.library = flags['standard']['libdir']
-
- def fix_dirs(self, progname, version):
- # e.g. progname = 'skencil', version = '0.5.3'
- if not self.exec_prefix:
- self.exec_prefix = self.prefix
- if not self.executable:
- self.executable = os.path.join(self.exec_prefix, 'bin')
- if not self.library:
- self.library = os.path.join(self.prefix, 'lib',
- progname + '-' + version)
-
- def replace_dirs(self, string):
- result = ''
- match = 1
- while match:
- match = rx_replace_dir.search(string)
- if match is not None:
- start, end = match.span(0)
- dir = getattr(self, match.group(1))
- result = result + string[:start] + dir
- string = string[end:]
- else:
- result = result + string
- return result
-
- def prepend_destdir(self, dir):
- # this may return a filename with multiple consecutive slashes
- # but that shouldn't be problem on Linux.
- if self.destdir:
- return self.destdir + '/' + dir
- return dir
-
-
-# return the longest common prefix of path1 and path2 that is a
-# directory.
-def commonbasedir(path1, path2):
- if path1[-1] != os.sep:
- path1 = path1 + os.sep
- return os.path.split(os.path.commonprefix([path1, path2]))[0]
-
-
-
-# return the absolute path PATH2 as a path relative to the directory
-# PATH1. If commonbasedir(PATH1, PATH2) is '/', return PATH2. Doesn't
-# take symbolic links into account...
-def relpath(path1, path2):
- #if not os.path.isabs(path2):
- # return path2
- basedir = commonbasedir(path1, path2)
- if basedir == os.sep:
- return path2
- path2 = path2[len(basedir) + 1 : ]
- curbase = path1
- while curbase != basedir:
- curbase = os.path.split(curbase)[0]
- path2 = os.pardir + os.sep + path2
- return path2
-
-def create_directory(dir):
- if os.path.isdir(dir):
- return
- parent, base = os.path.split(dir)
- if parent:
- create_directory(parent)
- try:
- os.mkdir(dir, 0777)
- except os.error, exc:
- print "can't create directory %s:%s" % (dir, exc)
-
-
-def link_file(source, dest):
- if os.path.isfile(dest) or os.path.islink(dest):
- # XXX should we really remove this
- try:
- os.unlink(dest)
- except os.error, exc:
- print "can't create remove %s:%s" % (dest, exc)
- try:
- os.symlink(source, dest)
- except os.error, exc:
- print "can't create symbolic link %s in %s:%s" % (source, dest, exc)
-
-def install_file(srcfile, dest, flags, dirs, verbose = 1, noop = 0):
- # srcfile must be a relative pathname, dest a directory
- srcdir, basename = os.path.split(srcfile)
- if 'recursive' in flags and not os.path.isabs(srcdir):
- destdir = os.path.join(dest, srcdir)
- else:
- destdir = os.path.normpath(dest)
- if not noop:
- create_directory(destdir)
- if 'link' in flags:
- # symlink
- # XXX should the link be relative if the directories have a
- # common prefix?
-
- for f in flags:
- if f[0] == "linkname":
- linkname = f[1]
- break
- else:
- if basename[-3:] == '.py':
- # XXX hack
- linkname = basename[:-3]
- destfile = os.path.join(destdir, linkname)
- if 'relative' in flags:
- # make srcfile a filename relative to destdir. Strip the
- # value of --dest-dir.
- d = destdir
- if dirs.destdir:
- normalized = os.path.normpath(dirs.destdir)
- length = len(normalized)
- if normalized == destdir[:length]:
- d = destdir[length:]
- if d[0] != '/':
- d = '/' + d
- srcfile = relpath(d, srcfile)
- if verbose:
- print 'create symlink %s in %s' % (srcfile, destfile)
- if not noop:
- link_file(srcfile, destfile)
- else:
- # copy file
- destfile = os.path.join(destdir, basename)
- if verbose:
- print 'copying %s to %s' % (srcfile, destfile)
- if not noop:
- # only copy regular files and remove the destination file if
- # it already exists.
- if os.path.isfile(srcfile):
- try:
- os.unlink(destfile)
- except:
- pass
- shutil.copy(srcfile, destfile)
- if "executable" in flags:
- # fix the interpreter line to always point to the
- # current python executable.
- f = open(destfile)
- lines = f.readlines()
- f.close()
- if lines[0][:2] == "#!":
- lines[0] = "#! %s\n" % sys.executable
- f = open(destfile, "w")
- f.writelines(lines)
- f.close()
-
-def bytecompile(dir, realdir):
- compileall.compile_dir(os.path.join(os.getcwd(), dir),
- ddir=os.path.join(os.getcwd(), realdir))
-
-def install(config, dirs):
- #
- # config is a list of tuples. Each tuple is of the form
- # (PATTERN, DEST) or (PATTERN, DEST, FLAGS)
- #
- for item in config:
- if len(item) == 2:
- pattern, dest = item
- flags = ()
- else:
- pattern, dest, flags = item
- if type(flags) == type(''):
- flags = (flags,)
- pattern = dirs.replace_dirs(pattern)
- dest = dirs.prepend_destdir(dirs.replace_dirs(dest))
- files = glob.glob(pattern)
- #print pattern, dest, files
- if not files and 'link' in flags:
- # hack for symlinks. The source may not exist during tests
- files = (pattern,)
-
- for file in files:
- install_file(file, dest, flags, dirs)
- #print 'install', file, 'in', dest
-#
-# Part 3:
-#
-# Drivers
-#
-
-def get_version():
- version = strip(open('Sketch/VERSION').read())
- return version
-
-def parse_cmd_line():
- setup = None
- argv = sys.argv[1:]
- flags = {}
- flags['standard'] = {'prefix': '/usr/local/', 'destdir':'',
- 'libdir': ''}
- flags['pax'] = {'XSHM': ''}
- flags['intl'] = {'files': ''}
- flags['sketch'] = {'imaging-include':
- os.path.join(sys.prefix, 'include',
- 'python' + sys.version[:3])}
- flags['tk'] = {'autoconf': 0, 'flags': ''}
- flags['make_defs'] = []
- if len(argv) == 0:
- command = 'help'
- else:
- command = argv[0]
- if command in ('-h', '--help'):
- command = 'help'
- del argv[0]
- for arg in argv:
- if '=' in arg:
- arg, value = split(arg, '=', 1)
- else:
- value = None
- if arg == '--prefix':
- if value is None:
- print 'Value required for option --prefix'
- sys.exit(1)
- flags['standard']['prefix'] = value
- elif arg == '--dest-dir':
- flags['standard']['destdir'] = value
- elif arg == '--libdir':
- flags['standard']['libdir'] = value
- elif arg == '--python-setup':
- setup = value
- elif arg == '--pax-no-xshm':
- flags['pax']['XSHM'] = '-DPAX_NO_XSHM'
- elif arg == '--imaging-include':
- if value is None:
- print 'Value required for option --imaging-include'
- sys.exit(1)
- flags['sketch']['imaging-include'] = value
- elif arg == '--with-nls':
- flags['intl']['files'] = 'intl intl.c'
- elif arg == '--tk-flags':
- flags['tk']['flags'] = value
- elif arg == '--tk-autoconf':
- flags['tk']['autoconf'] = 1
- elif arg in ('-h', '--help'):
- command = 'help'
- elif arg[0] != '-' and value:
- flags['make_defs'].append(pipes.quote(arg + '=' + value))
- else:
- sys.stderr.write('Unknown option %s\n' % arg)
- sys.exit(1)
- return command, flags, setup
-
-def print_help():
- setup = os.path.join(sys.prefix, 'lib/python' + sys.version[:3],
- 'config/Setup')
- print help_message % {'version': get_version(),
- 'pyprefix': sys.prefix,
- 'pyversion': sys.version[:3],
- 'pysetup': setup}
-
-help_message = """\
-Usage: setup.py COMMAND [options...]
-
-setup.py configures, builds and installs Skencil. COMMAND is one of:
-
- configure configure Skencil
- build compile the C extension modules
- install install Skencil on your system
-
-Generic options:
- -h, --help print this help message
-Options for configure:
- --imaging-include=DIR Look (recursively) under DIR for the header files
- of PIL (Python Imaging Library)
- [%(pyprefix)s/include/python%(pyversion)s]
- --pax-no-xshm Compile Pax (a module for direct access to Xlib)
- without support for the X Shared Memory extension.
- --with-nls Enable national language support for messages, menus,
- etc. You need the gettext library for this.
- --python-setup=FILE The python Setup file to parse.
- [%(pysetup)s]
- --tk-flags=flags Compiler flags to use for building the tk-modules
- --tk-autoconf Determine the compiler flags for Skencil's tk-modules
- without referring to Python's Setup file. When run
- under Python 2.1 this will always be done.
-Options for build:
- <VAR>=<VALUE> Options like this are passed through to make
- to let you override variables like CC or OPT.
- See the generated Makefiles for more details.
-Options for install:
- --prefix=PREFIX Install files in PREFIX/lib/skencil-%(version)s/ and
- PREFIX/bin [/usr/local]
- --dest-dir=DIR If given, install the files under DIR, but pretend
- that the files are really under the prefix directory.
- --libdir=DIR If given, install the library files under DIR,
- instead of PREFIX/lib/skencil-%(version)s/
-"""
-
-
-make_dirs = ('Pax', 'Filter', 'Sketch/Modules')
-
-lib = '@library'
-bin = '@executable'
-install_config = \
-[
- ('skencil.py', lib, 'executable'),
- ('sk2ps.py', lib, 'executable'),
- ('sk2ppm.py', lib, 'executable'),
- ('skconvert.py', lib, 'executable'),
- ('skshow.py', lib, 'executable'),
- ('Plugins/*/*.py', lib, 'recursive'),
- ('Plugins/*/*/*.py', lib, 'recursive'),
- ('Plugins/*/*/*/*.py', lib, 'recursive'),
- ('Sketch/*.py', lib, 'recursive'),
- ('Sketch/VERSION', lib, 'recursive'),
- ('Sketch/*/*.py', lib, 'recursive'),
- ('Sketch/*/*.so', lib, 'recursive'),
- ('Sketch/*/*.sl', lib, 'recursive'),
- ('Sketch/*/*.xbm', lib, 'recursive'),
- ('Sketch/*/*/*.xbm', lib, 'recursive'),
- ('Sketch/*/*.gif', lib, 'recursive'),
- ('Script/*.py', lib, 'recursive'),
- ('Resources/Fontmetrics/*', lib, 'recursive'),
- ('Resources/Misc/*', lib, 'recursive'),
- ('Pax/*.so', os.path.join(lib, 'Lib')),
- ('Pax/*.sl', os.path.join(lib, 'Lib')),
- ('Pax/*.py', os.path.join(lib, 'Lib')),
- ('Filter/*.so', os.path.join(lib, 'Lib')),
- ('Filter/*.sl', os.path.join(lib, 'Lib')),
- (os.path.join(lib, 'skencil.py'), bin, ('link', 'relative')),
- # A link named "sketch" for backwards compatibility
- (os.path.join(lib, 'skencil.py'), bin, ('link', ("linkname", "sketch"),
- 'relative')),
- (os.path.join(lib, 'sk2ps.py'), bin, ('link', 'relative')),
- (os.path.join(lib, 'sk2ppm.py'), bin, ('link', 'relative')),
- (os.path.join(lib, 'skconvert.py'), bin, ('link', 'relative')),
- (os.path.join(lib, 'skshow.py'), bin, ('link', 'relative')),
-]
-progname = 'skencil'
-version = None
-
-def intl_available():
- sys.path.insert(0, os.path.join(sys.path[0], 'Pax'))
- try:
- import intl
- #print 'intl available'
- return 1
- except:
- #print 'intl not available'
- return 0
-
-def main():
- global version
- version = get_version()
- command, flags, setup = parse_cmd_line()
- if command == 'help':
- print_help()
- elif command == 'configure':
- configure(make_dirs, flags, setup)
- elif command == 'build':
- build(make_dirs, flags['make_defs'])
- elif command == 'install':
- dirs = InstallDirs(flags)
- dirs.fix_dirs(progname = progname, version = version)
- install(install_config, dirs)
- if intl_available():
- install([('Resources/Messages/*/*/*.mo', lib, 'recursive')], dirs)
- for dir in ('Sketch', 'Plugins', 'Lib', 'Script'):
- dir = os.path.join(dirs.library, dir)
- bytecompile(dirs.prepend_destdir(dir), dir)
- else:
- print 'unknown command', command
- print_help()
-
-
-
-if __name__ == '__main__':
- main()
-
Deleted: skencil/branches/skencil-0.6/sk2ppm.py
===================================================================
--- skencil/branches/skencil-0.6/sk2ppm.py 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/sk2ppm.py 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,111 +0,0 @@
-#! /usr/bin/env python
-# Sketch - A Python-based interactive drawing program
-# Copyright (C) 1998, 1999, 2001, 2002, 2003 by Bernhard Herzog
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-# Convert a Sketch-file into a PPM file
-
-"""usage: sk2ppm [Options] infile [outfile]
-
-Convert the Skencil/Sketch SK-file infile into a PPM file. Output is
-written to outfile or to stdout.
-
-sk2ppm accepts these options:
-
- -h --help Print this help message and exit
- -b --bbox Use the document's bounding box to determine the
- size of the raster image
- -r --resolution=N Resolution of the raster image in pixels per inch
- Default: 72
- -s --gradient-steps=N Number of interpolated colors used in a gradient
- -A --alpha-bits=N Alpha bits for anti-aliasing (1, 2, or 4)
-
-"""
-
-import sys, os
-
-for dir in ('Lib', 'Filter', 'Pax'):
- dir = os.path.join(sys.path[0], dir)
- if os.path.isdir(dir):
- sys.path.insert(1, dir)
-
-from Sketch import load
-from Script.export_raster import export_raster
-
-
-def print_usage():
- print __doc__
-
-class Context:
- pass
-
-def main():
- import Sketch, Sketch.config
- Sketch.Issue(None, Sketch.const.INITIALIZE)
- #plugins.load_plugin_configuration(config.plugin_path)
-
- use_bbox = 0
- resolution = 72.0
- steps = alpha = None
-
- import getopt
- opts, args = getopt.getopt(sys.argv[1:], 'bhr:s:A:',
- ['help', 'bbox', 'resolution=',
- 'gradient-steps=', 'alpha-bits='])
-
- for optchar, value in opts:
- if optchar == '-h' or optchar == '--help':
- print_usage()
- return -1
- elif optchar == '-b' or optchar == '--bbox':
- use_bbox = 1
- elif optchar == '-r' or optchar == '--resolution':
- resolution = float(value)
- elif optchar == '-s' or optchar == '--gradient-steps':
- steps = float(value)
- elif optchar == '-A' or optchar == '--alpha-bits':
- alpha = int(value)
- if alpha not in (1, 2, 4):
- sys.stderr.write("sk2ppm: alpha-bits value must be one of"
- " 1, 2 or 4\n")
- return -1
-
- if len(args) not in (1, 2):
- print_usage()
- return -1
-
- if steps is not None:
- Sketch.config.preferences.gradient_steps_print = steps
-
- filename = args[0]
- if len(args) > 1:
- ppmfile = args[1]
- else:
- ppmfile = sys.stdout
-
- doc = load.load_drawing(filename)
-
- context = Context()
- context.document = doc
-
- export_raster(context, ppmfile, resolution, use_bbox, format = "ppm",
- antialias = alpha)
-
-if __name__ == '__main__':
- result = main()
-
- if result:
- sys.exit(result)
Deleted: skencil/branches/skencil-0.6/sk2ps.py
===================================================================
--- skencil/branches/skencil-0.6/sk2ps.py 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/sk2ps.py 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,144 +0,0 @@
-#! /usr/bin/env python
-
-# Sketch - A Python-based interactive drawing program
-# Copyright (C) 1998, 1999, 2000, 2003 by Bernhard Herzog
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-
-# Convert a SKFile into a PostScript file.
-#
-# This is a very simple implementation of such a script: Just load the
-# entire drawing into a document object (via the load module) and draw
-# it into a PostScriptDevice.
-#
-# This means that a lot of more or less unnecessary modules are
-# loaded...
-
-import sys, os
-
-from Sketch import load, PostScriptDevice
-from Sketch.Lib import util
-
-def sk2ps(filename, psfilename, **psargs):
- # convert the SK file FILENAME into a PostScript file PSFILENAME.
- # Any keyword arguments are passed to the PostScript device class.
- doc = load.load_drawing(filename)
- bbox = doc.BoundingRect(visible = psargs.get('visible', 0),
- printable = psargs.get('printable', 1))
- psargs['bounding_box'] = tuple(bbox)
- psargs['document'] = doc
- ps = apply(PostScriptDevice, (psfilename,), psargs)
- doc.Draw(ps)
- ps.Close()
-
-
-usage = '''\
-usage: sk2ps [Options] infile [outfile]
-
-Convert the Skencil/Sketch SK-file infile to PostScript (EPS). Output is
-written to outfile or to stdout.
-
-Generic options:
-
- -h --help Print this help message and exit
-
-Layer Selection:
-
-Normally all layers marked as printable are printed, regardless of
-whether they are visible or not. These options control which layers to
-print:
-
- -v --visible Print all layers marked as visible
- -p --noprintable Choose layers only according to their visible flag
- and the -v option.
-
-Eps Header Comments:
-
- -t --title=TITLE Use TITLE as the value of the `Title:\' comment.
- Default is the basename of infile.
- -d --date=DATE Use the DATE as the vale of the `CreationDate:\'
- comment. Default is the current date.
- -f --for=NAME Use NAME as the value of the `For:\' comment.
- default is the real user name.
-
-Other Options:
-
- -e --embed-fonts Embed fonts in the eps file.
- -r --rotate Rotate the drawing 90 degree counter clockwise
-'''
-
-def print_usage():
- print usage
-
-def main():
- import Sketch
- Sketch.init_lib()
-
- draw_printable = 1
- draw_visible = 0
- embed_fonts = 0
- eps_for = util.get_real_username()
- eps_date = util.current_date()
- eps_title = None
- rotate = 0
-
- import getopt
- opts, args = getopt.getopt(sys.argv[1:], 'hprved:f:t:',
- ['help', 'noprintable', 'rotate', 'visible',
- 'embed-fonts', 'for=', 'date=', 'title='])
-
- for optchar, value in opts:
- if optchar == '-h' or optchar == '--help':
- print_usage()
- return -1
- elif optchar == '-p' or optchar == '--noprintable':
- draw_printable = 0
- elif optchar == '-v' or optchar == '--visible':
- draw_visible = 1
- elif optchar == '-d' or optchar == '--date':
- eps_date = value
- elif optchar == '-f' or optchar == '--for':
- eps_for = value
- elif optchar == '-r' or optchar == '--rotate':
- rotate = 1
- elif optchar == '-t' or optchar == '--title':
- eps_title = value
- elif optchar == '-e' or optchar == '--embed-fonts':
- embed_fonts = 1
-
- if len(args) not in (1, 2):
- print_usage()
- return -1
-
- filename = args[0]
- if len(args) > 1:
- psfile = args[1]
- else:
- psfile = sys.stdout
-
- if eps_title is None:
- eps_title = os.path.basename(filename)
-
- sk2ps(filename, psfile, printable= draw_printable, visible = draw_visible,
- For = eps_for, CreationDate = eps_date, Title = eps_title,
- rotate = rotate, embed_fonts = embed_fonts)
-
-if __name__ == '__main__':
- result = main()
-
- if result:
- sys.exit(result)
Deleted: skencil/branches/skencil-0.6/skconvert.py
===================================================================
--- skencil/branches/skencil-0.6/skconvert.py 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/skconvert.py 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,57 +0,0 @@
-#! /usr/bin/env python
-
-# Sketch - A Python-based interactive drawing program
-# Copyright (C) 2002, 2003, 2006 by Bernhard Herzog
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-"""Usage: skconvert infile outfile
-
-Convert a vector graphics file into another format. This is done by
-reading infile into Skencil and saving it as outfile. infile can be in
-any format Skencil can read. The format of the output file is determined
-by its extension.
-"""
-
-import sys, os
-
-from Sketch import load, plugins
-import Sketch
-
-
-def convert(infile, outfile):
- doc = load.load_drawing(infile)
- extension = os.path.splitext(outfile)[1]
- fileformat = plugins.guess_export_plugin(extension)
- if fileformat:
- saver = plugins.find_export_plugin(fileformat)
- saver(doc, outfile)
- else:
- sys.stderr.write("skconvert: unrecognized extension %s\n" % extension)
- sys.exit(1)
- doc.Destroy()
-
-
-def main():
- Sketch.init_lib()
- if len(sys.argv) != 3:
- sys.stderr.write(__doc__)
- sys.exit(1)
-
- convert(sys.argv[1], sys.argv[2])
-
-
-main()
-
Deleted: skencil/branches/skencil-0.6/skencil.py
===================================================================
--- skencil/branches/skencil-0.6/skencil.py 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/skencil.py 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,34 +0,0 @@
-#! /usr/bin/env python
-
-# Sketch - A Python-based interactive drawing program
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003 by Bernhard Herzog
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-#
-# a small script to find out where Sketch is installed and launch Sketch
-#
-
-import sys
-
-if sys.version < '1.5.1':
- sys.stderr.write("Sorry, Skencil requires at least Python 1.5.1\n")
- sys.exit(1)
-
-import Sketch
-
-Sketch.config.sketch_command = sys.argv[0]
-
-Sketch.main.main()
Deleted: skencil/branches/skencil-0.6/skencil.spec.in
===================================================================
--- skencil/branches/skencil-0.6/skencil.spec.in 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/skencil.spec.in 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,111 +0,0 @@
-#
-# spec file for Skencil
-#
-
-Summary: python-based vector drawing program
-Name: skencil
-Version: @VERSION@
-Release: 1
-License: LGPL, Python style
-Group: unsorted
-Source: http://prdownloads.sourceforge.net/sketch/sketch-%PACKAGE_VERSION.tar.gz
-URL: http://www.skencil.org/
-Packager: Andrew Grimberg <tykeal-rpms at bardicgrove.org>
-
-Prefix: %{_prefix}
-BuildRoot: %{_tmppath}/%{name}-buildroot
-Requires: python >= 1.5.1, python-imaging, tkinter
-BuildRequires: python >= 1.5.1, python-imaging
-
-%description
-Skencil is an interactive X11 vector drawing program. It is written
-almost completely in Python, an object oriented interpreted programming
-language.
-
-%prep
-%setup
-mv Pax/README Pax/README.pax
-mv Pax/COPYING Pax/COPYING.pax
-mv Filter/COPYING Filter/COPYING.filter
-mv Filter/README Filter/README.filter
-mv Tools/README Tools/README.tools
-mv Tools/COPYING Tools/COPYING.tools
-
-%build
-./setup.py configure --with-nls
-./setup.py build
-
-
-%install
-strip -S Pax/*.so
-strip -S Filter/*.so
-strip -S Sketch/Modules/*.so
-./setup.py install --prefix=%{buildroot}%{_prefix}
-%{__install} -m 755 Tools/mkfontdb.py %{buildroot}%{_bindir}
-
-%clean
-rm -rf %{buildroot}
-
-%files
-%defattr(-, root, root)
-%{_libdir}/%{name}-%PACKAGE_VERSION
-%{_bindir}/skencil
-%{_bindir}/sketch
-%{_bindir}/sk2ps
-%{_bindir}/skshow
-%{_bindir}/sk2ppm
-%{_bindir}/skconvert
-%{_bindir}/mkfontdb.py
-%doc Examples
-%doc Doc
-%doc README INSTALL BUGS CREDITS COPYING TODO PROJECTS FAQ NEWS
-%doc Pax/README.pax Pax/COPYING.pax Pax/COPYING.xext
-%doc Filter/README.filter Filter/COPYING.filter
-%doc Tools/README.tools Tools/COPYING.tools
-%doc Misc
-
-#%post
-#for i in $(/usr/sbin/chkfontpath | %{__grep} Type1 | %{__sed} 's/[0-9]*: //g'); do
-# if [ -e $i ]; then
-# %{_bindir}/mkfontdb.py -s -o $i/std.sfd $i
-# fi
-#done
-
-%changelog
-* Sun Nov 30 2003 Bernhard Herzog
-- Renamed Sketch to Skencil where applicable
-
-* Wed Jan 29 2003 Andrew Grimberg
-- Updated for 0.6.15
-- Changed 'Copyright' field to 'License' as Copyright appears to be deprecated
-
-* Mon Dec 30 2002 Andrew Grimberg
-- Commented out the postinstall script. It doesn't appear to be fixing the
- problems that I was attempting to correct. When I can figure out the fix
- I'll get a script in to do that.
-
-* Mon Nov 04 2002 Andrew Grimberg
-- Updated the requiremnts to require python-Imaging instead of _imaging.so
-- Added a requirement for tkinter to be installed
-- Added build requirements of pythong >= 1.5.1 and pythong-Imaging
-- Added in the mkfontdb.py tool (and associated docs) into the distributed
- rpm (wasn't doing that before)
-- Added a postinstall script to build the std.sfd file (sketch fonts database
- for Type1 fonts) for each Type1 directory on the font path
-
-* Sat Sep 21 2002 Andrew Grimberg
-- Updated Packager: field for RPM build.
-- Moved changelog entry from Bernhard into the proper location for build of
- rpms. (Gotta be in descending chronological order).
-
-* Sat Sep 21 2002 Bernhard Herzog
-- Make the Packager: field empty and tweak the Version: field so that it
- can be incorporated in the sketch 0.6 source archive.
-
-* Tue Mar 19 2002 Andrew Grimberg
-- Added in sk2ppm and skconvert to the installed package
-- Removed an unneeded pre variable (wasn't being properly used anyway)
-- Added in a cleanup from the setup.py install call
-
-* Sat Mar 16 2002 Andrew Grimberg
-- Rebuilt .spec to support user building of package and package relocation
Deleted: skencil/branches/skencil-0.6/skshow.py
===================================================================
--- skencil/branches/skencil-0.6/skshow.py 2010-09-22 12:17:50 UTC (rev 704)
+++ skencil/branches/skencil-0.6/skshow.py 2010-09-22 12:20:12 UTC (rev 705)
@@ -1,226 +0,0 @@
-#!/usr/bin/env python
-
-# Sketch - A Python-based interactive drawing program
-# Copyright (C) 2000, 2001 by Bernhard Herzog
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-'''\
-skshow [options] file1 [file2 ...]
-
-A slideshow for sketch files. Use space/backspace or left and right
-mouse button for navigation.
-
-Options:
- -h, --help Print this help message
- --keep Keep files in memory after loading them
- --preload Load the next file in advance while the old one is shown
- --fit Fit drawing in window
- --display=DISP The X display to use
- --geometry=GEO The size and/or position of the window in the form WxH+X+Y
-
-'''
-
-
-import sys, getopt
-
-class Options:
- display = None
- geometry = '640x480'
- keep = 0
- preload = 0
- fit = 0
- files = []
-
-def parse_options():
- try:
- opts, args = getopt.getopt(sys.argv[1:], "h",
- ["display=", "geometry=", "keep", "preload", "fit" ,
- "help"])
- except getopt.error:
- sys.stderr.write(__doc__)
- sys.exit(0)
-
- for opt, value in opts:
- if opt == "--display":
- Options.display = value
- elif opt == "--geometry":
- Options.geometry = value
- elif opt == "--keep":
- Options.keep = 1
- elif opt == "--preload":
- Options.preload = 1
- elif opt == "--fit":
- Options.fit = 1
- elif opt in ("-h", "--help"):
- sys.stderr.write(__doc__)
- sys.exit(0)
-
- Options.files = args
-
-parse_options()
-
-import Sketch
-Sketch.init_ui()
-
-import Sketch.UI.skapp, Sketch.UI.view, Sketch.load
-
-from Tkinter import BOTH
-
-
-class ShowView(Sketch.UI.view.SketchView):
-
- def __init__(self, master=None, toplevel = None, double_buffer = 1,
- show_page_outline = 0, **kw):
- apply(Sketch.UI.view.SketchView.__init__, (self, master), kw)
- self.double_buffer = double_buffer
- self.show_page_outline = show_page_outline
-
- def do_clear(self, region):
- if not self.double_buffer:
- Sketch.UI.view.SketchView.do_clear(self, region)
-
- def RedrawMethod(self, region = None):
- if self.double_buffer:
- self.gc.StartDblBuffer()
- Sketch.UI.view.SketchView.RedrawMethod(self, region)
- if self.double_buffer:
- self.gc.EndDblBuffer()
- self.tkwin.Sync()
-
-
-class MainWindow:
-
- def __init__(self, app, files, keep = 0, preload = 0):
- self.application = app
- self.files = files
- self.keep = keep
- self.preload = preload
- self.docs = [None] * len(self.files)
- self.current = 0
- self.autofill = 1
- self.build_window()
- self.bind_events()
-
- def build_window(self):
- root = self.application.root
- self.view = ShowView(root, toplevel = root)
- self.view.pack(fill = BOTH, expand = 1)
- self.view.focus()
-
- def bind_events(self):
- self.view.bind("<Configure>", self.view_resized)
- self.view.bind("<Map>", self.view_resized)
- self.view.bind("<q>", self.Exit)
- for event in ("<1>", "<n>", "<space>"):
- self.view.bind(event, self.next_file)
- for event in ("<3>", "<p>", "<BackSpace>"):
- self.view.bind(event, self.previous_file)
-
- def adjust_view(self):
- if self.autofill:
- if Options.fit:
- self.view.FitToWindow()
- else:
- self.view.FitPageToWindow()
- #self.view.SetScale(1.0)
- #self.view.SetCenter((512, 384), move_contents = 0)
-
- def view_resized(self, event):
- self.adjust_view()
-
- def next_file(self, *args):
- which = self.current + 1
- if which < len(self.files):
- self.current = which
- self.load_file(which)
-
- def previous_file(self, event):
- which = self.current - 1
- if which >= 0:
- self.current = which
- self.load_file(which)
-
- def load_file(self, which):
- if self.docs[which] is None:
- filename = self.files[which]
- doc = Sketch.load.load_drawing(filename)
- self.docs[which] = doc
- else:
- doc = self.docs[which]
-
- self.view.SetDocument(doc)
- self.adjust_view()
-
- if not self.keep and which > 0 and self.docs[which - 1] is not None:
- self.docs[which - 1].Destroy()
- self.docs[which - 1] = None
-
- if self.preload:
- self.view.after_idle(self.preload_files)
-
- def preload_files(self, *args):
- next = self.current + 1
- if next < len(self.docs) and not self.docs[next]:
- filename = self.files[next]
- doc = Sketch.load.load_drawing(filename)
- self.docs[next] = doc
-
-
- def Exit(self, *args):
- self.application.Exit()
-
- def Run(self):
- self.load_file(0)
- self.application.Mainloop()
-
-
-
-
-class SketchShowApplication(Sketch.UI.skapp.TkApplication):
-
- tk_basename = 'sketchshow'
- tk_class_name = 'SketchShow'
-
- def __init__(self, files, screen_name = None, geometry = None, keep = 0,
- preload = 0):
- Sketch.UI.skapp.TkApplication.__init__(self, screen_name = screen_name,
- geometry = geometry)
- self.files = files
- self.build_window(keep, preload)
-
- def init_tk(self, screen_name = None, geometry = None):
- Sketch.UI.skapp.TkApplication.init_tk(self, screen_name = screen_name,
- geometry = geometry)
- Sketch.init_modules_from_widget(self.root)
-
- def build_window(self, keep, preload):
- #self.root.wm_maxsize(1024, 768)
- self.main_window = MainWindow(self, self.files, keep = keep,
- preload = preload)
-
- def Run(self):
- self.main_window.Run()
-
- def Exit(self):
- self.root.destroy()
-
-
-app = SketchShowApplication(Options.files, screen_name = Options.display,
- geometry = Options.geometry, keep = Options.keep,
- preload = Options.preload)
-app.Run()
-
-
More information about the Skencil-commits
mailing list