texlive[63378] Master/texmf-dist: pgf-umlcd (23may22)

commits+karl at tug.org commits+karl at tug.org
Mon May 23 21:55:15 CEST 2022


Revision: 63378
          http://tug.org/svn/texlive?view=revision&revision=63378
Author:   karl
Date:     2022-05-23 21:55:14 +0200 (Mon, 23 May 2022)
Log Message:
-----------
pgf-umlcd (23may22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/COPYING
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/pgf-umlcd-manual.pdf
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/pgf-umlcd-manual.tex
    trunk/Master/texmf-dist/tex/latex/pgf-umlcd/pgf-umlcd.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/LICENSE-GPL2.txt
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/LICENSE-LPPL1.3c.txt
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/README.md
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/RELEASE_NOTES.md
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/demo/color.tex
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/demo/multiple-inheritance.tex
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/description.html
    trunk/Master/texmf-dist/tex/latex/pgf-umlcd/tikzlibraryumlcd.code.tex

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/pgf-umlcd/README

Modified: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/COPYING
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-umlcd/COPYING	2022-05-22 23:49:16 UTC (rev 63377)
+++ trunk/Master/texmf-dist/doc/latex/pgf-umlcd/COPYING	2022-05-23 19:55:14 UTC (rev 63378)
@@ -1,14 +1,11 @@
 This file is part of pgf-umlcd.
 
-pgf-umlcd is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+Copyright 2009-2020 Yuan Xu
 
-pgf-umlcd is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+pgf-umlcd is licensed under the terms of the The LaTeX Project Public License (LPPL) 1.3c, or
+alternatively under the terms of the General Public License (GPL) Version 2.
 
-You should have received a copy of the GNU General Public License
-along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
\ No newline at end of file
+The terms of each license can be found in the source repository:
+
+LaTeX Project Public License: doc/latex/pgf-umlcd/LICENSE-LPPL1.3c.txt
+General Public License 2: doc/latex/pgf-umlcd/LICENSE-GPL2.txt

Added: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/LICENSE-GPL2.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-umlcd/LICENSE-GPL2.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pgf-umlcd/LICENSE-GPL2.txt	2022-05-23 19:55:14 UTC (rev 63378)
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+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 software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, 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 redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+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 Program or any portion
+of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+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 Program, 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 Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) 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; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, 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 executable.  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.
+
+If distribution of executable or 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 counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program 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.
+
+  5. 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 Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program 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.
+
+  7. 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 Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program 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 Program.
+
+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.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program 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.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies 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 Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, 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
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. 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 PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+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 program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.


Property changes on: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/LICENSE-GPL2.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/LICENSE-LPPL1.3c.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-umlcd/LICENSE-LPPL1.3c.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pgf-umlcd/LICENSE-LPPL1.3c.txt	2022-05-23 19:55:14 UTC (rev 63378)
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c  2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+    Everyone is allowed to distribute verbatim copies of this
+    license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute.  This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but 
+it is written in such a way that you can use it even if your work is 
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work.  If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+   `Work'
+    Any work being distributed under this License.
+    
+   `Derived Work'
+    Any work that under any applicable law is derived from the Work.
+
+   `Modification' 
+    Any procedure that produces a Derived Work under any applicable
+    law -- for example, the production of a file containing an
+    original file associated with the Work or a significant portion of
+    such a file, either verbatim or with modifications and/or
+    translated into another language.
+
+   `Modify'
+    To apply any procedure that produces a Derived Work under any
+    applicable law.
+    
+   `Distribution'
+    Making copies of the Work available from one person to another, in
+    whole or in part.  Distribution includes (but is not limited to)
+    making any electronic components of the Work accessible by
+    file transfer protocols such as FTP or HTTP or by shared file
+    systems such as Sun's Network File System (NFS).
+
+   `Compiled Work'
+    A version of the Work that has been processed into a form where it
+    is directly usable on a computer system.  This processing may
+    include using installation facilities provided by the Work,
+    transformations of the Work, copying of components of the Work, or
+    other activities.  Note that modification of any installation
+    facilities provided by the Work constitutes modification of the Work.
+
+   `Current Maintainer'
+    A person or persons nominated as such within the Work.  If there is
+    no such explicit nomination then it is the `Copyright Holder' under
+    any applicable law.
+
+   `Base Interpreter' 
+    A program or process that is normally needed for running or
+    interpreting a part or the whole of the Work.    
+
+    A Base Interpreter may depend on external components but these
+    are not considered part of the Base Interpreter provided that each
+    external component clearly identifies itself whenever it is used
+    interactively.  Unless explicitly specified when applying the
+    license to the Work, the only applicable Base Interpreter is a
+    `LaTeX-Format' or in the case of files belonging to the 
+    `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1.  Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope.  In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2.  You may distribute a complete, unmodified copy of the Work as you
+received it.  Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3.  You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4.  If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work.  You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work.  Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5.  If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6.  If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition.  Only
+the Current Maintainer is allowed to add such statements of exemption 
+to a component of the Work. 
+
+  a. If a component of this Derived Work can be a direct replacement
+     for a component of the Work when that component is used with the
+     Base Interpreter, then, wherever this component of the Work
+     identifies itself to the user when used interactively with that
+     Base Interpreter, the replacement component of this Derived Work
+     clearly and unambiguously identifies itself as a modified version
+     of this component to the user when used interactively with that
+     Base Interpreter.
+     
+  b. Every component of the Derived Work contains prominent notices
+     detailing the nature of the changes to that component, or a
+     prominent reference to another file that is distributed as part
+     of the Derived Work and that contains a complete and accurate log
+     of the changes.
+  
+  c. No information in the Derived Work implies that any persons,
+     including (but not limited to) the authors of the original version
+     of the Work, provide any support, including (but not limited to)
+     the reporting and handling of errors, to recipients of the
+     Derived Work unless those persons have stated explicitly that
+     they do provide such support for the Derived Work.
+
+  d. You distribute at least one of the following with the Derived Work:
+
+       1. A complete, unmodified copy of the Work; 
+          if your distribution of a modified component is made by
+          offering access to copy the modified component from a
+          designated place, then offering equivalent access to copy
+          the Work from the same or some similar place meets this
+          condition, even though third parties are not compelled to
+          copy the Work along with the modified component;
+
+       2. Information that is sufficient to obtain a complete,
+          unmodified copy of the Work.
+
+7.  If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8.  The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9.  Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+     
+10. a. A Derived Work may be distributed under a different license
+       provided that license itself honors the conditions listed in
+       Clause 6 above, in regard to the Work, though it does not have
+       to honor the rest of the conditions in this license.
+      
+    b. If a Derived Work is distributed under a different license, that
+       Derived Work must provide sufficient documentation as part of
+       itself to allow each recipient of that Derived Work to honor the 
+       restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12.  Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work.  Except when otherwise stated in
+writing, the Copyright Holder provides the Work `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 Work is with you.  Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1.  Make a reasonable attempt to trace the Current Maintainer (and
+     the Copyright Holder, if the two differ) through the means of
+     an Internet or similar search.
+
+ 2.  If this search is successful, then enquire whether the Work
+     is still maintained.
+
+  a. If it is being maintained, then ask the Current Maintainer
+     to update their communication data within one month.
+     
+  b. If the search is unsuccessful or no action to resume active
+     maintenance is taken by the Current Maintainer, then announce
+     within the pertinent community your intention to take over
+     maintenance.  (If the Work is a LaTeX work, this could be
+     done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+     maintenance of the Work to you, then this takes effect
+     immediately upon announcement.
+     
+  b. If the Current Maintainer is not reachable and the Copyright
+     Holder agrees that maintenance of the Work be passed to you,
+     then this takes effect immediately upon announcement.  
+    
+ 4.  If you make an `intention announcement' as described in 2b. above
+     and after three months your intention is challenged neither by
+     the Current Maintainer nor by the Copyright Holder nor by other
+     people, then you may arrange for the Work to be changed so as
+     to name you as the (new) Current Maintainer.
+     
+ 5.  If the previously unreachable Current Maintainer becomes
+     reachable once more within three months of a change completed
+     under the terms of 3b) or 4), then that Current Maintainer must
+     become or remain the Current Maintainer upon request provided
+     they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer.  You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license.  These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license.  You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license.  It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate.  Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component.  While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community.  It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one.  Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified.  Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+  %% pig.dtx
+  %% Copyright 2005 M. Y. Name
+  %
+  % This work may be distributed and/or modified under the
+  % conditions of the LaTeX Project Public License, either version 1.3
+  % of this license or (at your option) any later version.
+  % The latest version of this license is in
+  %   http://www.latex-project.org/lppl.txt
+  % and version 1.3 or later is part of all distributions of LaTeX
+  % version 2005/12/01 or later.
+  %
+  % This work has the LPPL maintenance status `maintained'.
+  % 
+  % The Current Maintainer of this work is M. Y. Name.
+  %
+  % This work consists of the files pig.dtx and pig.ins
+  % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.  
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+   The LPPL requires that distributions of the Work contain all the
+   files of the Work.  It is therefore important that you provide a
+   way for the licensee to determine which files constitute the Work.
+   This could, for example, be achieved by explicitly listing all the
+   files of the Work near the copyright notice of each file or by
+   using a line such as:
+
+    % This work consists of all files listed in manifest.txt.
+   
+   in that place.  In the absence of an unequivocal list it might be
+   impossible for the licensee to determine what is considered by you
+   to comprise the Work and, in such a case, the licensee would be
+   entitled to make reasonable conjectures as to which files comprise
+   the Work.
+


Property changes on: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/LICENSE-LPPL1.3c.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-umlcd/README	2022-05-22 23:49:16 UTC (rev 63377)
+++ trunk/Master/texmf-dist/doc/latex/pgf-umlcd/README	2022-05-23 19:55:14 UTC (rev 63378)
@@ -1,3 +0,0 @@
-Some LaTeX macros for UML Class Diagrams.
-Home page of project: http://pgf-umlcd.googlecode.com/
-Please read pgf-umlcd-manual.pdf for more information.

Added: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-umlcd/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pgf-umlcd/README.md	2022-05-23 19:55:14 UTC (rev 63378)
@@ -0,0 +1,15 @@
+# pgf-umlcd
+
+![CI](https://github.com/pgf-tikz/pgf/workflows/CI/badge.svg)
+
+Some LaTeX macros for UML Class Diagrams.
+
+Please go to the official repository at https://github.com/pgf-tikz/pgf-umlcd
+or the official mailing list at https://tug.org/mailman/listinfo/pgf-tikz to
+submit bug reports, request new features, etc.
+
+Please read pgf-umlcd-manual.pdf for more information.
+
+## License
+
+pgf-umlcd is released under the terms of both the LPPL v1.3c and the GPL v2.


Property changes on: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/RELEASE_NOTES.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-umlcd/RELEASE_NOTES.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pgf-umlcd/RELEASE_NOTES.md	2022-05-23 19:55:14 UTC (rev 63378)
@@ -0,0 +1,12 @@
+# Bug fixes
+
+This release contains mostly bugfixes but also some grand internal restructuring
+of the package. However, the latter should not be visible to the end user. If
+you encounter breakages please raise an issue on GitHub.
+
+- Patch for multiple inheritance
+- Add color settings, thanks Maarten van Dessel
+- Add support for static classes analogue to abstract classes
+- Changed from above/below to auto in association et al. Added possibility of optional argument
+- Move anchor=north before this umlcd style
+- Start rewrite as a TikZ library


Property changes on: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/RELEASE_NOTES.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/demo/color.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-umlcd/demo/color.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pgf-umlcd/demo/color.tex	2022-05-23 19:55:14 UTC (rev 63378)
@@ -0,0 +1,14 @@
+\renewcommand{\umltextcolor}{red}
+\renewcommand{\umlfillcolor}{green}
+\renewcommand{\umldrawcolor}{blue}
+
+\begin{tikzpicture}
+  \begin{class}[text width=8cm]{ClassName}{0,0}
+    \attribute{name : attribute type}
+    \attribute{name : attribute type = default value}
+
+    \operation{name(parameter list) : type of value returned}
+    % virtual operation
+    \operation[0]{name(parameters list) : type of value returned}
+  \end{class}
+\end{tikzpicture}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/demo/color.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/demo/multiple-inheritance.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-umlcd/demo/multiple-inheritance.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pgf-umlcd/demo/multiple-inheritance.tex	2022-05-23 19:55:14 UTC (rev 63378)
@@ -0,0 +1,16 @@
+\begin{tikzpicture}%[show background grid]
+    \begin{class}[text width = 2cm]{TArg}{0, 0}
+    \end{class}
+
+    \begin{class}[text width = 2cm]{TGroup}{5, 0}
+    \end{class}
+
+    \begin{class}[text width = 2cm]{TProgInit}{10, 0}
+    \end{class}
+
+    \begin{class}[text width = 2cm]{TProgram}{5, -2}
+        \inherit{TProgInit}
+        \inherit{TGroup}
+        \inherit{TArg}
+    \end{class}
+\end{tikzpicture}


Property changes on: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/demo/multiple-inheritance.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/description.html
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-umlcd/description.html	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pgf-umlcd/description.html	2022-05-23 19:55:14 UTC (rev 63378)
@@ -0,0 +1,2 @@
+<p>Some LaTeX macros for UML Class Diagrams.<a data-cke-saved-href="/pkg/pgf" href="/pkg/pgf">pgf</a><br></p>
+


Property changes on: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/description.html
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/pgf-umlcd-manual.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/pgf-umlcd/pgf-umlcd-manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-umlcd/pgf-umlcd-manual.tex	2022-05-22 23:49:16 UTC (rev 63377)
+++ trunk/Master/texmf-dist/doc/latex/pgf-umlcd/pgf-umlcd-manual.tex	2022-05-23 19:55:14 UTC (rev 63378)
@@ -68,7 +68,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \title{Drawing UML Class Diagram by using \texttt{pgf-umlcd}}
 \author{\href{mailto:xuyuan.cn at gmail.com}{Yuan Xu}}
-\date{\today{}~(v0.2.1)}
+\date{\today{}~(v0.3)}
 \maketitle
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -112,6 +112,8 @@
 \subsection{Inheritance and implement}
 \subsubsection{Inheritance}
 \demo{inheritance}
+\subsubsection{Multiple Inheritance}
+\demo{multiple-inheritance}
  
 \subsubsection{Implement an interface}
 \demo{implement-interface}
@@ -132,6 +134,13 @@
 \subsection{Package}
 \demo{package}
 
+\section{Customization}
+\subsection{Color settings}
+The color of digram is defined by \lstinline|\umltextcolor|, \lstinline|\umldrawcolor| and \lstinline|\umlfillcolor|, such as:
+
+\demo{color} 
+
+
 \section{Examples}
 \subsection{Abstract Factory}
 \example{abstract-factory}
@@ -140,7 +149,9 @@
 Many people contributed to \texttt{pgf-umlcd} by reporting problems,
 suggesting various improvements or submitting code. Here is a list of
 these people: \href{mailto:martin.quinson at loria.fr}{Martin Quinson},
-and \href{mailto:johannes_pieper at yahoo.de}{Johannes Pieper}.
+\href{mailto:johannes_pieper at yahoo.de}{Johannes Pieper},
+\href{mailto:lwghsh at gmail.com}{sh w},
+and \href{mailto:maartenvandessel at hotmail.com}{Maarten van Dessel}.
 
 \end{document}
 %%% Local Variables: 

Modified: trunk/Master/texmf-dist/tex/latex/pgf-umlcd/pgf-umlcd.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pgf-umlcd/pgf-umlcd.sty	2022-05-22 23:49:16 UTC (rev 63377)
+++ trunk/Master/texmf-dist/tex/latex/pgf-umlcd/pgf-umlcd.sty	2022-05-23 19:55:14 UTC (rev 63378)
@@ -1,353 +1,10 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Start of pgf-umlcd.sty
-%
-% Some macros for UML Class Diagrams.
-% Home page of project: http://pgf-umlcd.googlecode.com/
-% Author: Xu Yuan <xu at informatik.hu-berlin.de>, Humboldt University, Berlin
-% Style from: http://www.ibm.com/developerworks/cn/rational/r-uml/
-%
-
+% SPDX-License-Identifier: GPL-2.0-only OR LPPL-1.3c
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{pgf-umlcd}[2011/10/01 v0.3dev Some LaTeX macros for
-UML Class Diagrams.]
+\ProvidesPackage{pgf-umlcd}[2022/05/22 v0.3 Some LaTeX macros for UML Class Diagrams.]
 
 \RequirePackage{tikz}
+\usetikzlibrary{umlcd}
 
-\usetikzlibrary{arrows,shapes.multipart,backgrounds,fit}
-\tikzstyle{help lines}+=[blue!50,very thin,dashed]
-
-\newcommand{\umltextcolor}{black}
-\newcommand{\umldrawcolor}{purple}
-\newcommand{\umlfillcolor}{yellow!20}
-\tikzstyle{umlcolor}=[color=\umldrawcolor,fill=\umlfillcolor,text=\umltextcolor]
-\tikzstyle{umlcd style}=[umlcolor, >=angle 90]
-
-\tikzstyle{package}=[matrix, column sep=1mm, row sep=1cm, node distance=2cm]
-\tikzstyle{packagename}=[rectangle, minimum height=2em]
-
-\tikzstyle{umlcd style implement line}=[color=\umldrawcolor, open triangle 45-,dashed]
-\tikzstyle{objectline}=[color=\umldrawcolor, diamond->]
-\tikzstyle{umlcd style inherit line}=[color=\umldrawcolor, open triangle 45-]
-\tikzstyle{splitline}=[color=\umldrawcolor, dotted,font=\itshape]
-
-\tikzstyle{umlcd style class}=[rectangle split, rectangle split parts=3, 
-every text node part/.style={text centered},
-draw, minimum height=2em, umlcolor, minimum width=2cm, text width=5cm,
-minimum height=1cm, node distance=2cm]
-
-
-\tikzstyle{umlcd style dashed line}=[color=\umldrawcolor, >=angle 90,dashed]
-
-\tikzstyle{umlcd style school}=[]
-\newif\ifschool\schoolfalse
-\DeclareOption{school}{\tikzstyle{umlcd style school}=[rounded corners] \schooltrue}
-\newif\ifsimplified\simplifiedfalse
-\DeclareOption{simplified}{\simplifiedtrue}
+\DeclareOption{school}{\tikzset{umlcd style school/.style={rounded corners}}\pgfumlcd at schooltrue}
+\DeclareOption{simplified}{\pgfumlcd at simplifiedtrue}
 \ProcessOptions\relax
-
-
-% declare layers
-\pgfdeclarelayer{background}
-\pgfdeclarelayer{connectionlayers}
-\pgfsetlayers{background,connectionlayers,main}
-
-\newcounter{umlcdClassAttributesNum}
-\newcounter{umlcdClassOperationsNum}
-\newcounter{umlcdClassAbstractClassNum}
-\newcounter{umlcdClassInterfaceNum}
-\newcounter{umlcdClassSplitPartNum}
-
-\def\umlcdPackageFit{}
-
-\newenvironment{class}[3][]%
-{
-\begin{classAndInterfaceCommon}{#1}{#2}{#3}
-}%
-{\calcuateNumberOfParts{}
-\node[this umlcd style, anchor=north] (\umlcdClassName) at (\umlcdClassPos)
-    {\textbf{\umlcdClassName}
-\insertAttributesAndOperations{}
-};
-
-\end{classAndInterfaceCommon}
-}
-
-\newenvironment{interface}[3][]%
-{
-\begin{classAndInterfaceCommon}{#1}{#2}{#3}
-}%
-{\calcuateNumberOfParts{}
-\node[this umlcd style, anchor=north] (\umlcdClassName) at (\umlcdClassPos)
-    {$<<$interface$>>$ \\ \textbf{\umlcdClassName}
-\insertAttributesAndOperations{}
-};
-
-\end{classAndInterfaceCommon}
-}
-
-\newenvironment{abstractclass}[3][]%
-{
-\begin{classAndInterfaceCommon}{#1}{#2}{#3}
-}%
-{\calcuateNumberOfParts{}
-\node[this umlcd style, anchor=north] (\umlcdClassName) at (\umlcdClassPos)
-    {$<<$abstract$>>$ \\ \textbf{\umlcdClassName}
-\insertAttributesAndOperations{}
-};
-
-\end{classAndInterfaceCommon}
-}
-
-% TODO: here the name of \umlcdClassName and \umlObjectName should be
-% switched, it is only for reusing \classAndInterfaceCommon at the
-% moment.
-\newenvironment{object}[3][]%
-{
-\begin{classAndInterfaceCommon}{#1}{#2}{#3}
-\def\@instanceOf{}
-\def\@@instanceOf{}
-}%
-{
-  % customized
-  \ifsimplified
-  \calcuateNumberOfParts{}
-  \else
-  \ifnum\c at umlcdClassOperationsNum>0
-  \setcounter{umlcdClassSplitPartNum}{3}
-  \protected at xdef\umlcdSplitPart{3}
-  \else
-  \setcounter{umlcdClassSplitPartNum}{2}
-  \protected at xdef\umlcdSplitPart{2}
-  \fi
-  \fi
-
-	\ifx\@instanceOf\@@instanceOf
-		\def\umldObjectName{\umlcdClassName}
-	\else
-		\def\umldObjectName{\umlcdClassName : \@instanceOf}
-	\fi
-
-\node[this umlcd style, anchor=north, umlcd style school] (\umlcdClassName) at (\umlcdClassPos)
-    { \ifschool
-				\textbf{\umldObjectName}
-			\else 
-				\underline{\textbf{\umldObjectName}}
-			\fi
-			\insertAttributesAndOperations{}
-};
-
-\end{classAndInterfaceCommon}
-}
-
-\newcommand*{\insertAttributesAndOperations}
-{
-  \ifnum\c at umlcdClassSplitPartNum>1
-  \nodepart{second}
-  \fi
-  \umlcdClassAttributes
-  \ifnum\c at umlcdClassSplitPartNum>2
-  \nodepart{third}
-  \fi
-  \umlcdClassOperations
-}
-
-\newcommand*{\calcuateNumberOfParts}
-{
-  % calcuate the number of parts
-  \ifsimplified
-  \setcounter{umlcdClassSplitPartNum}{1}
-  \ifnum\c at umlcdClassAttributesNum>0
-  \stepcounter{umlcdClassSplitPartNum}
-  \fi
-  \ifnum\c at umlcdClassOperationsNum>0
-  \stepcounter{umlcdClassSplitPartNum}
-  \fi
-  \else
-  \setcounter{umlcdClassSplitPartNum}{3}% three parts by default
-  \fi
-
-  \protected at xdef\umlcdSplitPart{3}
-  \ifnum\c at umlcdClassSplitPartNum=1
-  \protected at xdef\umlcdSplitPart{1}
-  \fi
-  \ifnum\c at umlcdClassSplitPartNum=2
-  \protected at xdef\umlcdSplitPart{2}
-  \fi
-}
-
-\newenvironment*{classAndInterfaceCommon}[3]
-{
-\def\umlcdClassName{#2}%
-\def\umlcdClassPos{#3}
-\def\umlcdClassAttributes{}%
-\def\umlcdClassOperations{}%
-\def\umlcdClassAbstractClass{}%
-\def\umlcdClassInterface{}%
-\setcounter{umlcdClassAttributesNum}{0}%
-\setcounter{umlcdClassOperationsNum}{0}%
-\setcounter{umlcdClassAbstractClassNum}{0}%
-\setcounter{umlcdClassInterfaceNum}{0}%
-\tikzstyle{this umlcd style}=[umlcd style class, rectangle split
-  parts=\umlcdSplitPart, #1]
-}%
-{
-%% connections
-\begin{pgfonlayer}{connectionlayers}
-\ifnum\c at umlcdClassAbstractClassNum>0
-\foreach \c in {\umlcdClassAbstractClass}{
-  \draw [umlcd style inherit line] (\c) -- (\umlcdClassName);
-}
-\fi
-
-\ifnum\c at umlcdClassInterfaceNum>0
-\foreach \c in {\umlcdClassInterface}{
-  \draw [umlcd style implement line] (\c) -- (\umlcdClassName);
-}
-\fi
-\end{pgfonlayer}
-
-%% add to fit
-\let\umlcdPackageFitOld\umlcdPackageFit
-\protected at xdef\umlcdPackageFit{\umlcdPackageFitOld (\umlcdClassName)}
-}
-
-\newcommand{\attribute}[1]{%
-\ifnum\c at umlcdClassAttributesNum=0
-\protected at xdef\umlcdClassAttributes{#1}
-\else
-\let\umlcdClassAttributesOld\umlcdClassAttributes
-\protected at xdef\umlcdClassAttributes{\umlcdClassAttributesOld \ \newline
-    #1}
-\fi
-\stepcounter{umlcdClassAttributesNum}
-}
-
-\newcommand{\operation}[2][1]{%
-\stepcounter{umlcdClassOperationsNum}
-
-\def\virtualoperation{#2}
-\ifnum0=#1
-\def\virtualoperation{\textit{#2}}
-\fi
-
-\ifnum\c at umlcdClassOperationsNum=1
-\protected at xdef\umlcdClassOperations{\virtualoperation}
-\else
-\let\umlcdClassOperationsOld\umlcdClassOperations
-\protected at xdef\umlcdClassOperations{\umlcdClassOperationsOld \ \newline
-    \virtualoperation}
-\fi
-}
-
-\newcommand{\inherit}[1]
-{
-\stepcounter{umlcdClassAbstractClassNum}
-\ifnum\c at umlcdClassAbstractClassNum=1
-\protected at xdef\umlcdClassAbstractClass{#1}
-\else
-\let\umlcdClassAbstractClassOld\umlcdClassAbstractClass
-\protected at xdef\umlcdClassAbstractClass{\umlcdClassAbstractClassOld,
-  #1}
-\fi
-}
-
-\newcommand{\implement}[1]
-{
-\stepcounter{umlcdClassInterfaceNum}
-\ifnum\c at umlcdClassInterfaceNum=1
-\protected at xdef\umlcdClassInterface{#1}
-\else
-\let\umlcdClassInterfaceOld\umlcdClassInterface
-\protected at xdef\umlcdClassInterface{\umlcdClassInterfaceOld,
-  #1}
-\fi
-}
-
-\newcommand{\instanceOf}[1]{\def\@instanceOf{#1}}
-
-\newcommand{\association}[6]{
-\draw [umlcd style] (#1) -- (#4)
-node[near start, above]{#2}
-node[near start, below]{#3}
-node[near end, above]{#5}
-node[near end, below]{#6};
-}
-
-\newcommand{\unidirectionalAssociation}[4]{
-\draw [umlcd style, ->] (#1) -- (#4)
-node[near end, above]{#2}
-node[near end, below]{#3};
-}
-
-\newcommand{\aggregation}[4]
-{
-\draw[umlcd style, open diamond->] (#1) -- (#4)
-node[near end, above]{#2}
-node[near end, below]{#3};
-}
-
-\newcommand{\composition}[4]
-{
-\draw[umlcd style, fill=\umldrawcolor, diamond->] (#1) -- (#4)
-node[near end, above]{#2}
-node[near end, below]{#3};
-}
-
-\newenvironment{package}[1]{
-\def\umlcdPackageFit{}
-\def\umlcdPackageName{#1}
-}{
-  \begin{pgfonlayer}{background}
-  \node[umlcd style, draw, inner sep=0.5cm, fit = \umlcdPackageFit] (\umlcdPackageName) {};
-  \node[umlcd style, draw, outer ysep=-0.5, anchor=south west] (\umlcdPackageName caption) at
-  (\umlcdPackageName.north west) {\umlcdPackageName};
-  \end{pgfonlayer}
-}
-
-\newcommand{\switchUmlcdSchool}{
-	\ifschool
-		\tikzstyle{umlcd style school}=[]
-		\schoolfalse
-	\else
-		\tikzstyle{umlcd style school}=[rounded corners]
-		\schooltrue
-	\fi
-}
-
-\pgfdeclareshape{umlcdnote}{
-\inheritsavedanchors[from=rectangle] % this is nearly a rectangle
-\inheritanchorborder[from=rectangle]
-\inheritanchor[from=rectangle]{center}
-\inheritanchor[from=rectangle]{north}
-\inheritanchor[from=rectangle]{south}
-\inheritanchor[from=rectangle]{west}
-\inheritanchor[from=rectangle]{east}
-% ... and possibly more
-\backgroundpath{% this is new
-% store lower right in xa/ya and upper right in xb/yb
-\southwest \pgf at xa=\pgf at x \pgf at ya=\pgf at y
-\northeast \pgf at xb=\pgf at x \pgf at yb=\pgf at y
-% compute corner of flipped page
-\pgf at xc=\pgf at xb \advance\pgf at xc by-10pt % this should be a parameter
-\pgf at yc=\pgf at yb \advance\pgf at yc by-10pt
-% construct main path
-\pgfpathmoveto{\pgfpoint{\pgf at xa}{\pgf at ya}}
-\pgfpathlineto{\pgfpoint{\pgf at xa}{\pgf at yb}}
-\pgfpathlineto{\pgfpoint{\pgf at xc}{\pgf at yb}}
-\pgfpathlineto{\pgfpoint{\pgf at xb}{\pgf at yc}}
-\pgfpathlineto{\pgfpoint{\pgf at xb}{\pgf at ya}}
-\pgfpathclose
-% add little corner
-\pgfpathmoveto{\pgfpoint{\pgf at xc}{\pgf at yb}}
-\pgfpathlineto{\pgfpoint{\pgf at xc}{\pgf at yc}}
-\pgfpathlineto{\pgfpoint{\pgf at xb}{\pgf at yc}}
-\pgfpathlineto{\pgfpoint{\pgf at xc}{\pgf at yc}}
-}
-}
-
-\newcommand{\umlnote}[1][]{
-	\node[umlcd style, anchor=north, draw,shape=umlcdnote, text width=4cm, #1]
-}
-
-%%% End of pgf-umlcd.sty
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ No newline at end of file

Added: trunk/Master/texmf-dist/tex/latex/pgf-umlcd/tikzlibraryumlcd.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pgf-umlcd/tikzlibraryumlcd.code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/pgf-umlcd/tikzlibraryumlcd.code.tex	2022-05-23 19:55:14 UTC (rev 63378)
@@ -0,0 +1,402 @@
+% SPDX-License-Identifier: GPL-2.0-only OR LPPL-1.3c
+
+\usetikzlibrary{arrows,shapes.multipart,backgrounds,fit}
+
+%
+% Utilities
+%
+
+\def\pgfumlcd at ifx#1#2{%
+  \ifx#1#2%
+    \expandafter\pgfutil at firstoftwo
+  \else
+    \expandafter\pgfutil at secondoftwo
+  \fi}
+
+\def\pgfumlcd at ifdim#1#2#3{%
+  \ifdim\dimexpr#1\relax#2\dimexpr#3\relax
+    \expandafter\pgfutil at firstoftwo
+  \else
+    \expandafter\pgfutil at secondoftwo
+  \fi}
+
+\def\pgfumlcd at ifnum#1#2#3{%
+  \ifnum\numexpr#1\relax#2\numexpr#3\relax
+    \expandafter\pgfutil at firstoftwo
+  \else
+    \expandafter\pgfutil at secondoftwo
+  \fi}
+
+\def\pgfumlcd at newif#1{%
+  \csname newif\expandafter\endcsname\csname ifpgfumlcd@#1\endcsname
+  \expandafter\def\csname pgfumlcd at if#1\expandafter\endcsname\expandafter{%
+    \csname ifpgfumlcd@#1\endcsname
+      \expandafter\pgfutil at firstoftwo
+    \else
+      \expandafter\pgfutil at secondoftwo
+    \fi}%
+}
+
+\expandafter\let\expandafter\pgfumlcd at xdef\csname\ifcsname protected at xdef\endcsname protected@\fi xdef\endcsname
+
+\def\umltextcolor{black}
+\def\umldrawcolor{purple}
+\def\umlfillcolor{yellow!20}
+
+\tikzset{%
+  help lines/.append style = {blue!50,very thin,dashed},
+  umlcolor/.style = {color=\umldrawcolor,fill=\umlfillcolor,text=\umltextcolor},
+  umlcd style/.style = {umlcolor, >=angle 90},
+  package/.style = {matrix, column sep=1mm, row sep=1cm, node distance=2cm},
+  packagename/.style = {rectangle, minimum height=2em},
+  umlcd style implement line/.style = {color=\umldrawcolor, open triangle 45-,dashed},
+  objectline/.style = {color=\umldrawcolor, diamond->},
+  umlcd style inherit line/.style = {color=\umldrawcolor, open triangle 45-},
+  splitline/.style = {color=\umldrawcolor, dotted,font=\pgfutil at font@itshape},
+  umlcd style class/.style = {rectangle split, rectangle split parts=3, 
+    every text node part/.style={text centered},
+    draw, minimum height=2em, umlcolor, minimum width=2cm, text width=5cm,
+    minimum height=1cm, node distance=2cm},
+  umlcd style dashed line/.style = {color=\umldrawcolor, >=angle 90,dashed},
+  umlcd style school/.style = {},
+}
+
+\pgfumlcd at newif{school}
+\pgfumlcd at newif{simplified}
+
+% declare layers
+\pgfdeclarelayer{background}
+\pgfdeclarelayer{connectionlayers}
+\pgfsetlayers{background,connectionlayers,main}
+
+\newcount\pgfumlcd at ClassAttributesNum
+\newcount\pgfumlcd at ClassOperationsNum
+\newcount\pgfumlcd at ClassAbstractClassNum
+\newcount\pgfumlcd at ClassInterfaceNum
+\newcount\pgfumlcd at ClassSplitPartNum
+
+\def\pgfumlcd at PackageFit{}
+
+\def\pgfumlcd at class{\pgfutil at ifnextchar[{\pgfumlcd at class@}{\pgfumlcd at class@[]}}
+\def\pgfumlcd at class@[#1]#2#3{%
+  \pgfumlcd at classAndInterfaceCommon{#1}{#2}{#3}%
+}
+\def\endpgfumlcd at class{%
+    \pgfumlcd at calcuateNumberOfParts{}%
+    \node[anchor=north,this umlcd style] (\pgfumlcd at ClassName) at (\pgfumlcd at ClassPos) {%
+      {\pgfutil at font@bfseries\pgfumlcd at ClassName} % <-- explicit space
+      \pgfumlcd at insertAttributesAndOperations{}%
+    };%
+  \endpgfumlcd at classAndInterfaceCommon
+}
+
+\def\pgfumlcd at interface{\pgfutil at ifnextchar[{\pgfumlcd at interface@}{\pgfumlcd at interface@[]}}
+\def\pgfumlcd at interface@[#1]#2#3{%
+  \pgfumlcd at classAndInterfaceCommon{#1}{#2}{#3}%
+}
+\def\endpgfumlcd at interface{%
+    \pgfumlcd at calcuateNumberOfParts{}%
+    \node[anchor=north,this umlcd style] (\pgfumlcd at ClassName) at (\pgfumlcd at ClassPos) {%
+      $<<$interface$>>$\break
+      {\pgfutil at font@bfseries\pgfumlcd at ClassName} % <-- explicit space
+      \pgfumlcd at insertAttributesAndOperations{}%
+    };%
+  \endpgfumlcd at classAndInterfaceCommon
+}
+
+\def\pgfumlcd at abstractclass{\pgfutil at ifnextchar[{\pgfumlcd at abstractclass@}{\pgfumlcd at abstractclass@[]}}
+\def\pgfumlcd at abstractclass@[#1]#2#3{%
+  \pgfumlcd at classAndInterfaceCommon{#1}{#2}{#3}%
+}
+\def\endpgfumlcd at abstractclass{%
+    \pgfumlcd at calcuateNumberOfParts{}
+    \node[anchor=north,this umlcd style] (\pgfumlcd at ClassName) at (\pgfumlcd at ClassPos) {%
+      $<<$abstract$>>$\break
+      {\pgfutil at font@bfseries\pgfumlcd at ClassName} % <-- explicit space
+      \pgfumlcd at insertAttributesAndOperations{}%
+    };%
+  \endpgfumlcd at classAndInterfaceCommon
+}
+
+\def\pgfumlcd at staticclass{\pgfutil at ifnextchar[{\pgfumlcd at staticclass@}{\pgfumlcd at staticclass@[]}}
+\def\pgfumlcd at staticclass@[#1]#2#3{%
+  \pgfumlcd at classAndInterfaceCommon{#1}{#2}{#3}%
+}
+\def\endpgfumlcd at staticclass{%
+    \pgfumlcd at calcuateNumberOfParts{}
+    \node[anchor=north,this umlcd style] (\pgfumlcd at ClassName) at (\pgfumlcd at ClassPos) {%
+      $<<$static$>>$\break
+      {\pgfutil at font@bfseries\pgfumlcd at ClassName} % <-- explicit space
+      \pgfumlcd at insertAttributesAndOperations{}%
+    };%
+  \endpgfumlcd at classAndInterfaceCommon
+}
+
+% TODO: here the name of \pgfumlcd at ClassName and \umlObjectName should be
+% switched, it is only for reusing \classAndInterfaceCommon at the
+% moment.
+\def\pgfumlcd at object{\pgfutil at ifnextchar[{\pgfumlcd at object@}{\pgfumlcd at object@[]}}
+\def\pgfumlcd at object@[#1]#2#3{%
+  \pgfumlcd at classAndInterfaceCommon{#1}{#2}{#3}%
+    \def\pgfumlcd@@instanceOf{}
+}
+\def\endpgfumlcd at object{%
+    % customized
+    \pgfumlcd at ifsimplified{%
+      \pgfumlcd at calcuateNumberOfParts{}%
+    }{%
+      \pgfumlcd at ifnum{\pgfumlcd at ClassOperationsNum}{>}{0}{%
+        \pgfumlcd at ClassSplitPartNum=3
+        \pgfumlcd at xdef\pgfumlcd at SplitPart{3}%
+      }{%
+        \pgfumlcd at ClassSplitPartNum=2
+        \pgfumlcd at xdef\pgfumlcd at SplitPart{2}%
+      }%
+    }%
+    \pgfumlcd at ifx{\pgfumlcd@@instanceOf}{\pgfutil at empty}{%
+      \def\pgfumlcd at ObjectName{\pgfumlcd at ClassName}%
+    }{%
+      \def\pgfumlcd at ObjectName{\pgfumlcd at ClassName : \pgfumlcd@@instanceOf}%
+    }%
+    \node[anchor=north,this umlcd style,umlcd style school] (\pgfumlcd at ClassName) at (\pgfumlcd at ClassPos) {%
+      \pgfumlcd at ifschool{%
+        {\pgfutil at font@bfseries\pgfumlcd at ObjectName}%
+      }{%
+        \underline{\pgfutil at font@bfseries\pgfumlcd at ObjectName}%
+      } % <-- explicit space
+      \pgfumlcd at insertAttributesAndOperations{}%
+    };%
+  \endpgfumlcd at classAndInterfaceCommon
+}
+
+\def\pgfumlcd at insertAttributesAndOperations{%
+  \pgfumlcd at ifnum{\pgfumlcd at ClassSplitPartNum}{>}{1}{%
+    \nodepart{second}%
+  }{}%
+  \pgfumlcd at ClassAttributes
+  \pgfumlcd at ifnum{\pgfumlcd at ClassSplitPartNum}{>}{2}{%
+    \nodepart{third}%
+  }{}%
+  \pgfumlcd at ClassOperations
+}
+
+\def\pgfumlcd at calcuateNumberOfParts{%
+  % calcuate the number of parts
+  \pgfumlcd at ifsimplified{%
+    \pgfumlcd at ClassSplitPartNum=1
+    \pgfumlcd at ifnum{\pgfumlcd at ClassAttributesNum}{>}{0}{%
+      \advance\pgfumlcd at ClassSplitPartNum by 1
+    }{}%
+    \pgfumlcd at ifnum{\pgfumlcd at ClassOperationsNum}{>}{0}{%
+      \advance\pgfumlcd at ClassSplitPartNum by 1
+    }{}%
+  }{%
+    \pgfumlcd at ClassSplitPartNum=3 % three parts by default
+  }%
+  \pgfumlcd at xdef\pgfumlcd at SplitPart{3}
+  \pgfumlcd at ifnum{\pgfumlcd at ClassSplitPartNum}{=}{1}{%
+    \pgfumlcd at xdef\pgfumlcd at SplitPart{1}%
+  }{}%
+  \pgfumlcd at ifnum{\pgfumlcd at ClassSplitPartNum}{=}{2}{%
+    \pgfumlcd at xdef\pgfumlcd at SplitPart{2}%
+  }{}%
+}
+
+\def\pgfumlcd at classAndInterfaceCommon#1#2#3{%
+  \def\pgfumlcd at ClassName{#2}%
+  \def\pgfumlcd at ClassPos{#3}
+  \def\pgfumlcd at ClassAttributes{}%
+  \def\pgfumlcd at ClassOperations{}%
+  \def\pgfumlcd at ClassAbstractClass{}%
+  \def\pgfumlcd at ClassInterface{}%
+  \pgfumlcd at ClassAttributesNum=0
+  \pgfumlcd at ClassOperationsNum=0
+  \pgfumlcd at ClassAbstractClassNum=0
+  \pgfumlcd at ClassInterfaceNum=0
+  \tikzset{%
+    this umlcd style/.style={%
+      umlcd style class,%
+      rectangle split parts=\pgfumlcd at SplitPart,%
+      #1}%
+  }
+}%
+\def\endpgfumlcd at classAndInterfaceCommon{%
+  %% connections
+  \pgfonlayer{connectionlayers}%
+    \pgfumlcd at ifnum{\pgfumlcd at ClassAbstractClassNum}{>}{0}{%
+      \foreach \c in \pgfumlcd at ClassAbstractClass {%
+        \draw [umlcd style inherit line] (\c) -- (\pgfumlcd at ClassName);%
+      }%
+    }{}%
+    \pgfumlcd at ifnum{\pgfumlcd at ClassInterfaceNum}{>}{0}{%
+      \foreach \c in \pgfumlcd at ClassInterface {%
+        \draw [umlcd style implement line] (\c) -- (\pgfumlcd at ClassName);%
+      }%
+    }{}%
+  \endpgfonlayer
+  %% add to fit
+  \let\pgfumlcd at PackageFitOld\pgfumlcd at PackageFit
+  \pgfumlcd at xdef\pgfumlcd at PackageFit{\pgfumlcd at PackageFitOld (\pgfumlcd at ClassName)}%
+}
+
+\def\pgfumlcd at attribute#1{%
+  \pgfumlcd at ifnum{\pgfumlcd at ClassAttributesNum}{=}{0}{%
+    \pgfumlcd at xdef\pgfumlcd at ClassAttributes{#1}%
+  }{%
+    \let\pgfumlcd at ClassAttributesOld\pgfumlcd at ClassAttributes
+    \pgfumlcd at xdef\pgfumlcd at ClassAttributes{\pgfumlcd at ClassAttributesOld\break#1}%
+  }%
+  \advance\pgfumlcd at ClassAttributesNum by 1
+}
+
+\def\pgfumlcd at operation{\pgfutil at ifnextchar[{\pgfumlcd at operation@}{\pgfumlcd at operation@[1]}}
+\def\pgfumlcd at operation@[#1]#2{%
+  \advance\pgfumlcd at ClassOperationsNum by 1
+  \def\pgfumlcd at virtualoperation{#2}
+  \pgfumlcd at ifnum{0}{=}{#1}{%
+    \def\pgfumlcd at virtualoperation{{\pgfutil at font@itshape#2}}%
+  }{}%
+  \pgfumlcd at ifnum{\pgfumlcd at ClassOperationsNum}{=}{1}{%
+    \pgfumlcd at xdef\pgfumlcd at ClassOperations{\pgfumlcd at virtualoperation}%
+  }{%
+    \let\pgfumlcd at ClassOperationsOld\pgfumlcd at ClassOperations
+    \pgfumlcd at xdef\pgfumlcd at ClassOperations{\pgfumlcd at ClassOperationsOld\break\pgfumlcd at virtualoperation}%
+  }%
+}
+
+\def\pgfumlcd at inherit#1{%
+  \advance\pgfumlcd at ClassAbstractClassNum by 1
+  \pgfumlcd at ifnum{\pgfumlcd at ClassAbstractClassNum}{=}{1}{%
+    \pgfumlcd at xdef\pgfumlcd at ClassAbstractClass{#1}%
+  }{%
+    \let\pgfumlcd at ClassAbstractClassOld\pgfumlcd at ClassAbstractClass
+    \pgfumlcd at xdef\pgfumlcd at ClassAbstractClass{\pgfumlcd at ClassAbstractClassOld, #1}%
+  }%
+}
+
+\def\pgfumlcd at implement#1{%
+  \advance\pgfumlcd at ClassInterfaceNum by 1
+  \pgfumlcd at ifnum{\pgfumlcd at ClassInterfaceNum}{=}{1}{%
+    \pgfumlcd at xdef\pgfumlcd at ClassInterface{#1}
+  }{%
+    \let\pgfumlcd at ClassInterfaceOld\pgfumlcd at ClassInterface
+    \pgfumlcd at xdef\pgfumlcd at ClassInterface{\pgfumlcd at ClassInterfaceOld, #1}
+  }%
+}
+
+\def\pgfumlcd at instanceOf#1{\def\pgfumlcd@@instanceOf{#1}}
+
+\def\pgfumlcd at association{\pgfutil at ifnextchar[{\pgfumlcd at association@}{\pgfumlcd at association@[]}}
+\def\pgfumlcd at association@[#1]#2#3#4#5#6#7{%
+  \draw [umlcd style,#1] (#2) -- (#5)
+    node[near start, auto]{#3}
+    node[near start, auto, swap]{#4}
+    node[near end, auto]{#6}
+    node[near end, auto, swap]{#7};%
+}
+
+\def\pgfumlcd at unidirectionalAssociation{%
+  \pgfutil at ifnextchar[{\pgfumlcd at unidirectionalAssociation@}{\pgfumlcd at unidirectionalAssociation@[]}}
+\def\pgfumlcd at unidirectionalAssociation@[#1]#2#3#4#5{%
+  \draw [umlcd style,->,#1] (#2) -- (#5)
+    node[near end, auto]{#3}
+    node[near end, auto, swap]{#4};%
+}
+
+\def\pgfumlcd at aggregation{\pgfutil at ifnextchar[{\pgfumlcd at aggregation@}{\pgfumlcd at aggregation@[]}}
+\def\pgfumlcd at aggregation@[#1]#2#3#4#5{%
+  \draw[umlcd style,open diamond->,#1] (#2) -- (#5)
+    node[near end, auto]{#3}
+    node[near end, auto, swap]{#4};%
+}
+
+\def\pgfumlcd at composition{\pgfutil at ifnextchar[{\pgfumlcd at composition@}{\pgfumlcd at composition@[]}}
+\def\pgfumlcd at composition@[#1]#2#3#4#5{%
+  \draw[umlcd style,fill=\umldrawcolor,diamond->,#1] (#2) -- (#5)
+    node[near end, auto]{#3}
+    node[near end, auto, swap]{#4};%
+}
+
+\def\pgfumlcd at package#1{%
+  \def\pgfumlcd at PackageFit{}%
+  \def\pgfumlcd at PackageName{#1}%
+}
+\def\endpgfumlcd at package{%
+  \pgfonlayer{background}%
+    \node[umlcd style,draw,inner sep=0.5cm,fit=\pgfumlcd at PackageFit] (\pgfumlcd at PackageName) {};%
+    \node[umlcd style,draw,outer ysep=-0.5,anchor=south west] (\pgfumlcd at PackageName caption) at
+    (\pgfumlcd at PackageName.north west) {\pgfumlcd at PackageName};%
+  \endpgfonlayer
+}
+
+\def\switchUmlcdSchool{%
+  \pgfumlcd at ifschool{%
+    \tikzset{umlcd style school/.style={}}%
+    \pgfumlcd at schoolfalse
+  }{%
+    \tikzset{umlcd style school/.style = {rounded corners}}%
+    \pgfumlcd at schooltrue
+  }%
+}
+
+\pgfdeclareshape{umlcdnote}{%
+  \inheritsavedanchors[from=rectangle]% this is nearly a rectangle
+  \inheritanchorborder[from=rectangle]%
+  \inheritanchor[from=rectangle]{center}%
+  \inheritanchor[from=rectangle]{north}%
+  \inheritanchor[from=rectangle]{south}%
+  \inheritanchor[from=rectangle]{west}%
+  \inheritanchor[from=rectangle]{east}%
+  % ... and possibly more
+  \backgroundpath{% this is new
+    % store lower right in xa/ya and upper right in xb/yb
+    \southwest \pgf at xa=\pgf at x \pgf at ya=\pgf at y
+    \northeast \pgf at xb=\pgf at x \pgf at yb=\pgf at y
+    % compute corner of flipped page
+    \pgf at xc=\pgf at xb \advance\pgf at xc by-10pt % this should be a parameter
+    \pgf at yc=\pgf at yb \advance\pgf at yc by-10pt
+    % construct main path
+    \pgfpathmoveto{\pgfpoint{\pgf at xa}{\pgf at ya}}%
+    \pgfpathlineto{\pgfpoint{\pgf at xa}{\pgf at yb}}%
+    \pgfpathlineto{\pgfpoint{\pgf at xc}{\pgf at yb}}%
+    \pgfpathlineto{\pgfpoint{\pgf at xb}{\pgf at yc}}%
+    \pgfpathlineto{\pgfpoint{\pgf at xb}{\pgf at ya}}%
+    \pgfpathclose
+    % add little corner
+    \pgfpathmoveto{\pgfpoint{\pgf at xc}{\pgf at yb}}%
+    \pgfpathlineto{\pgfpoint{\pgf at xc}{\pgf at yc}}%
+    \pgfpathlineto{\pgfpoint{\pgf at xb}{\pgf at yc}}%
+    \pgfpathlineto{\pgfpoint{\pgf at xc}{\pgf at yc}}%
+  }%
+}
+
+\def\pgfumlcd at umlnote{\pgfutil at ifnextchar[{\pgfumlcd at umlnote@}{\pgfumlcd at umlnote@[]}}
+\def\pgfumlcd at umlnote@[#1]{%
+  \node[anchor=north,draw,shape=umlcdnote,text width=4cm,umlcd style,#1]%
+}
+
+\tikzaddtikzonlycommandshortcutlet{\class}{\pgfumlcd at class}
+\tikzaddtikzonlycommandshortcutlet{\endclass}{\endpgfumlcd at class}
+\tikzaddtikzonlycommandshortcutlet{\interface}{\pgfumlcd at interface}
+\tikzaddtikzonlycommandshortcutlet{\endinterface}{\endpgfumlcd at interface}
+\tikzaddtikzonlycommandshortcutlet{\abstractclass}{\pgfumlcd at abstractclass}
+\tikzaddtikzonlycommandshortcutlet{\endabstractclass}{\endpgfumlcd at abstractclass}
+\tikzaddtikzonlycommandshortcutlet{\staticclass}{\pgfumlcd at staticclass}
+\tikzaddtikzonlycommandshortcutlet{\endstaticclass}{\endpgfumlcd at staticclass}
+\tikzaddtikzonlycommandshortcutlet{\object}{\pgfumlcd at object}
+\tikzaddtikzonlycommandshortcutlet{\endobject}{\endpgfumlcd at object}
+\tikzaddtikzonlycommandshortcutlet{\classAndInterfaceCommon}{\pgfumlcd at classAndInterfaceCommon}
+\tikzaddtikzonlycommandshortcutlet{\endclassAndInterfaceCommon}{\endpgfumlcd at classAndInterfaceCommon}
+\tikzaddtikzonlycommandshortcutlet{\package}{\pgfumlcd at package}
+\tikzaddtikzonlycommandshortcutlet{\endpackage}{\endpgfumlcd at package}
+
+\tikzaddtikzonlycommandshortcutlet{\attribute}{\pgfumlcd at attribute}
+\tikzaddtikzonlycommandshortcutlet{\operation}{\pgfumlcd at operation}
+\tikzaddtikzonlycommandshortcutlet{\inherit}{\pgfumlcd at inherit}
+\tikzaddtikzonlycommandshortcutlet{\implement}{\pgfumlcd at implement}
+\tikzaddtikzonlycommandshortcutlet{\instanceOf}{\pgfumlcd at instanceOf}
+\tikzaddtikzonlycommandshortcutlet{\association}{\pgfumlcd at association}
+\tikzaddtikzonlycommandshortcutlet{\unidirectionalAssociation}{\pgfumlcd at unidirectionalAssociation}
+\tikzaddtikzonlycommandshortcutlet{\aggregation}{\pgfumlcd at aggregation}
+\tikzaddtikzonlycommandshortcutlet{\composition}{\pgfumlcd at composition}
+\tikzaddtikzonlycommandshortcutlet{\umlnote}{\pgfumlcd at umlnote}


Property changes on: trunk/Master/texmf-dist/tex/latex/pgf-umlcd/tikzlibraryumlcd.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property


More information about the tex-live-commits mailing list.