Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.

BUG:215923


git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdetoys@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
v3.5.13-sru
toma 15 years ago
commit ae2a03c294

@ -0,0 +1,4 @@
Look in the subdirs to get infos about the authors.
The package is maintained by Stephan Kulow <coolo@kde.org>

@ -0,0 +1,346 @@
NOTE! The GPL below is copyrighted by the Free Software Foundation, but
the instance of code that it refers to (the kde programs) are copyrighted
by the authors who actually wrote it.
---------------------------------------------------------------------------
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 Library 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) 19yy <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) 19yy 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 Library General
Public License instead of this License.

@ -0,0 +1,397 @@
GNU Free Documentation License
Version 1.2, November 2002
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
51 Franklin St, 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.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other
functional and useful document "free" in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way
to get credit for their work, while not being considered responsible
for modifications made by others.
This License is a kind of "copyleft", which means that derivative
works of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft
license designed for free software.
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. Such a notice grants a
world-wide, royalty-free license, unlimited in duration, to use that
work under the conditions stated herein. The "Document", below,
refers to any such manual or work. Any member of the public is a
licensee, and is addressed as "you". You accept the license if you
copy, modify or distribute the work in a way requiring permission
under copyright law.
A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of
the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document's overall subject
(or to related matters) and contains nothing that could fall directly
within that overall subject. (Thus, if the Document is in part a
textbook of mathematics, a Secondary Section may not explain any
mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
The "Invariant Sections" are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
that says that the Document is released under this License. If a
section does not fit the above definition of Secondary then it is not
allowed to be designated as Invariant. The Document may contain zero
Invariant Sections. If the Document does not identify any Invariant
Sections then there are none.
The "Cover Texts" are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License. A Front-Cover Text may
be at most 5 words, and a Back-Cover Text may be at most 25 words.
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
format whose markup, or absence of markup, has been arranged to thwart
or discourage subsequent modification by readers is not Transparent.
An image format is not Transparent if used for any substantial amount
of text. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input format, SGML
or XML using a publicly available DTD, and standard-conforming simple
HTML, PostScript or PDF designed for human modification. Examples of
transparent image formats include PNG, XCF and JPG. Opaque formats
include proprietary formats that can be read and edited only by
proprietary word processors, SGML or XML for which the DTD and/or
processing tools are not generally available, and the
machine-generated HTML, PostScript or PDF produced by some word
processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, "Title Page" means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
A section "Entitled XYZ" means a named subunit of the Document whose
title either is precisely XYZ or contains XYZ in parentheses following
text that translates XYZ in another language. (Here XYZ stands for a
specific section name mentioned below, such as "Acknowledgements",
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
of such a section when you modify the Document means that it remains a
section "Entitled XYZ" according to this definition.
The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this
License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has
no effect on the meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no other
conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the
Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
a computer-network location from which the general network-using
public has access to download using public-standard network protocols
a complete Transparent copy of the Document, free of added material.
If you use the latter option, you must take reasonably prudent steps,
when you begin distribution of Opaque copies in quantity, to ensure
that this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you distribute an
Opaque copy (directly or through your agents or retailers) of that
edition to the public.
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five),
unless they release you from this requirement.
C. State on the Title page the name of the publisher of the
Modified Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled "History", Preserve its Title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section Entitled "History" in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the "History" section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
K. For any section Entitled "Acknowledgements" or "Dedications",
Preserve the Title of the section, and preserve in the section all
the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
M. Delete any section Entitled "Endorsements". Such a section
may not be included in the Modified Version.
N. Do not retitle any existing section to be Entitled "Endorsements"
or to conflict in title with any Invariant Section.
O. Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
You may add a section Entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
parties--for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or
by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled "History"
in the various original documents, forming one section Entitled
"History"; likewise combine any sections Entitled "Acknowledgements",
and any sections Entitled "Dedications". You must delete all sections
Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in
the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute
it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
distribution medium, is called an "aggregate" if the copyright
resulting from the compilation is not used to limit the legal rights
of the compilation's users beyond what the individual works permit.
When the Document is included in an aggregate, this License does not
apply to the other works in the aggregate which are not themselves
derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one half of
the entire aggregate, the Document's Cover Texts may be placed on
covers that bracket the Document within the aggregate, or the
electronic equivalent of covers if the Document is in electronic form.
Otherwise they must appear on printed covers that bracket the whole
aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License, and all the license notices in the
Document, and any Warranty Disclaimers, provided that you also include
the original English version of this License and the original versions
of those notices and disclaimers. In case of a disagreement between
the translation and the original version of this License or a notice
or disclaimer, the original version will prevail.
If a section in the Document is Entitled "Acknowledgements",
"Dedications", or "History", the requirement (section 4) to Preserve
its Title (section 1) will typically require changing the actual
title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except
as expressly provided for under this License. Any other attempt to
copy, modify, sublicense or distribute the Document 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.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions
of the GNU Free Documentation 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. See
http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License "or any later version" applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
Copyright (c) YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
replace the "with...Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with the
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other
combination of the three, merge those two alternatives to suit the
situation.
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.

@ -0,0 +1,176 @@
Basic Installation
==================
These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes a while. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/kde/bin', `/usr/local/kde/lib', etc. You can specify an
installation prefix other than `/usr/local/kde' by giving `configure'
the option `--prefix=PATH'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made.
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.

@ -0,0 +1,6 @@
AUTOMAKE_OPTIONS = foreign 1.6.1
DISTCLEANFILES = inst-apps
MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 SUBDIRS
include admin/deps.am

@ -0,0 +1,14 @@
all:
@echo "This Makefile is only for the CVS repository"
@echo "This will be deleted before making the distribution"
@echo ""
@if test ! -d admin; then \
echo "Please recheckout this module!" ;\
echo "for cvs: use checkout once and after that update again" ;\
echo "for cvsup: checkout kde-common from cvsup and" ;\
echo " link kde-common/admin to ./admin" ;\
exit 1 ;\
fi
$(MAKE) -f admin/Makefile.common cvs
.SILENT:

@ -0,0 +1,47 @@
In this file:
* What it is
* Common Mistakes
* Debugging
* More Info
What it is
----------
* amor: Amusing Misuse Of Resources put's comic figures above your windows
* eyesapplet: a kicker applet similar to XEyes
* fifteenapplet: kicker applet, order 15 pieces in a 4x4 square by moving them
* kaphorism: displays aphorisms
* kmoon: system tray applet showing the moon phase
* kodo: mouse movement meter
* kscore: kicker applet with a sports ticker
* kteatime: system tray applet that makes sure your tea doesn't get too strong
* ktux: Tux-in-a-Spaceship screen saver
* kweather: kicker applet that will display the current weather outside
* kworldwatch: application and kicker applet showing daylight area on the world
globe
Common Mistakes
---------------
If configure claims Qt cannot be found, have a look at http://www.trolltech.com
to get the latest copy of Qt 3.3.x version.
Debugging
---------
You can use --enable-debug with the configure script, if you want to have
debug code in your KDE apps and libs. I recommend to do this, since this
is alpha software and this makes debugging things a whole lot easier.
More Info
---------
Have a look at the individual subdirectories, if you want to know, what
versions of apps are included.
Please direct any bug reports to our bug list by visiting
http://bugs.kde.org.
General KDE discussions should go to the KDE mailing list (kde@kde.org).

@ -0,0 +1,49 @@
/* AmorIface.h
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#ifndef __AmorIface_h__
#define __AmorIface_h__
#include <dcopobject.h>
class AmorIface : virtual public DCOPObject
{
K_DCOP
public:
k_dcop:
virtual void showTip(QString tip) = 0;
virtual void showMessage(QString message ) = 0;
virtual void showMessage(QString message, int msec ) = 0;
virtual void screenSaverStopped() = 0;
virtual void screenSaverStarted() = 0;
};
#endif

@ -0,0 +1,38 @@
# set the include path for X, qt and KDE
INCLUDES= $(all_includes)
# claim, which subdirectories you want to install
SUBDIRS = data
####### This part is very amor specific
# you can add here more. This one gets installed
bin_PROGRAMS = amor
# Which sources should be compiled for amor.
amor_SOURCES = amordialog.cpp amor.cpp amorwidget.cpp main.cpp amoranim.cpp amorpm.cpp\
amorbubble.cpp amorconfig.cpp amortips.cpp AmorIface.skel
include_HEADERS = AmorIface.h
# the library search path
amor_LDFLAGS = $(all_libraries) $(KDE_RPATH)
# the libraries to link against. Be aware of the order. First the libraries,
# that depend on the following ones.
amor_LDADD = $(LIB_KDEUI)
# this option you can leave out. Just, if you use "make dist", you need it
noinst_HEADERS = amor.h amorwidget.h amoranim.h amorpm.h amordialog.h\
amorbubble.h amorconfig.h amortips.h
METASOURCES = AUTO
messages:
perl ./preparetips > tips.cpp
$(XGETTEXT) tips.cpp *.cpp -o $(podir)/amor.pot
rm -f tips.cpp
xdg_apps_DATA = amor.desktop
KDE_ICON = amor

@ -0,0 +1,15 @@
As of 04/14/04...
- find a way to use round bubbles without using Painter.drawRoundRect,
because you can only specify the relative roundness of the corners. The corners
should have a fixed radius.
- What should be done about messages that arrive while the screensaver
is on?.
- Clean up the messages queue. Why is the default timing for messages
and tips calculated in class queueItem instead of in class Amor?
- Reduce the delay between a showMessage is received and the bubble is
actually shown.

File diff suppressed because it is too large Load Diff

@ -0,0 +1,74 @@
[Desktop Entry]
Name=AMOR
Name[af]=Amor
Name[ar]=برنامج AMOR
Name[bg]=Amor
Name[bn]=আমোর
Name[fi]=Amor
Name[fo]=Amor
Name[fr]=Amor
Name[hi]=एमोर
Name[pa]=ਅਮੋਰ
Name[sv]=Amor
Name[ta]= AMOR
Name[tr]=Amor
Name[zh_CN]=阿莫(AMOR)
Exec=amor
Icon=amor
Type=Application
DocPath=amor/index.html
GenericName=On-Screen Creature
GenericName[be]=Экранная жывёла
GenericName[bg]=Усмивка за работното място
GenericName[bn]=পর্দায় বসবাসকারী জন্তু
GenericName[ca]=Criatura a la pantalla
GenericName[cs]=Příšerka na obrazovce
GenericName[cy]=Creadur Ar-Sgrin
GenericName[da]=Skabning på skærmen
GenericName[de]=Maskottchen für die Arbeitsfläche
GenericName[el]=Πλάσμα στην οθόνη
GenericName[eo]=Surekrana kreaĵo
GenericName[es]=Criatura de la pantalla
GenericName[et]=Elajas töölaual
GenericName[eu]=Pantailako gizakia
GenericName[fa]=ایجاد‌کنندۀ روی پرده
GenericName[fi]=Näytönolento
GenericName[fr]=Créature sur l'écran
GenericName[ga]=Créatúr ar do scáileán
GenericName[gl]=Criatura no Escritório
GenericName[he]=יצור מסכי
GenericName[hr]=Kretura na zaslonu
GenericName[hu]=Animált figurák
GenericName[is]=Skjámyndataka
GenericName[it]=Creatura sullo schermo
GenericName[ja]=画面上の生物
GenericName[km]=ការច្នៃ​ប្រឌិត​លើ​អេក្រង់
GenericName[ko]=화면 위 생명체
GenericName[lv]=Ekrāna dzīvnieks
GenericName[mk]=Креатура на екранот
GenericName[mt]=Annimal ta' fuq l-iskrin
GenericName[nb]=Vesen på skjermen
GenericName[nds]=Schriefdisch-Maskottje
GenericName[ne]=पर्दा क्रिएचर
GenericName[nl]=Schermvermaak
GenericName[nn]=Skjermvesen
GenericName[pa]=ਆਨ-ਸਕਰੀਨ ਲਵੋ
GenericName[pl]=Stworzenie ekranowe
GenericName[pt]=Criatura no Ecrã
GenericName[pt_BR]=Criatura na Tela
GenericName[ro]=Creatură pe ecran
GenericName[ru]=Экранные зверушки
GenericName[sk]=Stvorenie na obrazovke
GenericName[sl]=Zaslonska živalca
GenericName[sr]=Створење на екрану
GenericName[sr@Latn]=Stvorenje na ekranu
GenericName[sv]=Varelse på skärmen
GenericName[ta]=திரையில் உருவாக்கி
GenericName[tg]=Махлуқ дар экран
GenericName[tr]=Ekranda Gezinen Yaratık
GenericName[uk]=Екранна істота
GenericName[zh_CN]=屏幕涂鸦
GenericName[zh_TW]=畫面擷取程式
Terminal=false
X-DCOP-ServiceType=Unique
Categories=Qt;KDE;Utility;Amusement;

@ -0,0 +1,164 @@
/* amor.h
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#ifndef AMOR_H
#define AMOR_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <qwidget.h>
#include <qptrqueue.h>
#include "amoranim.h"
#include "amortips.h"
#include "amorconfig.h"
#include "AmorIface.h"
class AmorDialog;
class AmorBubble;
class AmorWidget;
class QTimer;
class KWinModule;
class KPopupMenu;
class QueueItem {
public:
enum itemType { Talk , Tip };
QueueItem(itemType ty, QString te, int ti = -1);
itemType type() { return iType; }
QString text() { return iText; };
int time() { return iTime; };
void setTime(int newTime) { if (iTime > 0) iTime = newTime; };
private:
itemType iType;
QString iText;
int iTime;
};
//---------------------------------------------------------------------------
//
// Amor handles window manager input and animation selection and updates.
//
class Amor : public QObject, virtual public AmorIface
{
Q_OBJECT
public:
Amor();
virtual ~Amor();
virtual void showTip(QString tip);
virtual void showMessage(QString message);
virtual void showMessage(QString message, int msec);
virtual void screenSaverStopped();
virtual void screenSaverStarted();
void reset();
public slots:
void slotWindowActivate(WId);
void slotWindowRemove(WId);
void slotStackingChanged();
void slotWindowChange(WId, const unsigned long * properties);
void slotDesktopChange(int);
protected slots:
void slotMouseClicked(const QPoint &pos);
void slotTimeout();
void slotCursorTimeout();
void slotConfigure();
void slotConfigChanged();
void slotOffsetChanged(int);
void slotAbout();
void slotWidgetDragged( const QPoint &delta, bool release );
void restack();
void hideBubble(bool forceDequeue = false);
void slotBubbleTimeout();
protected:
enum State { Focus, Blur, Normal, Sleeping, Waking, Destroy };
bool readConfig();
void readGroupConfig(KConfigBase &config, QPtrList<AmorAnim> &animList,
const char *seq);
void showBubble();
AmorAnim *randomAnimation(QPtrList<AmorAnim> &animList);
void selectAnimation(State state=Normal);
void active();
private:
KWinModule *mWin;
WId mTargetWin; // The window that the animations sits on
QRect mTargetRect; // The goemetry of the target window
WId mNextTarget; // The window that will become the target
AmorWidget *mAmor; // The widget displaying the animation
AmorThemeManager mTheme; // Animations used by current theme
AmorAnim *mBaseAnim; // The base animation
AmorAnim *mCurrAnim; // The currently running animation
int mPosition; // The position of the animation
State mState; // The current state of the animation
QTimer *mTimer; // Frame timer
QTimer *mCursorTimer;// Cursor timer
QTimer *mStackTimer; // Restacking timer
QTimer *mBubbleTimer;// Bubble tip timer (GP: I didn't create this one, it had no use when I found it)
AmorDialog *mAmorDialog; // Setup dialog
KPopupMenu *mMenu; // Our menu
time_t mActiveTime; // The time an active event occurred
QPoint mCursPos; // The last recorded position of the pointer
QString mTipText; // Text to display in a bubble when possible
AmorBubble *mBubble; // Text bubble
AmorTips mTips; // Tips to display in the bubble
bool mInDesktopBottom; // the animation is not on top of the
// title bar, but at the bottom of the desktop
AmorConfig mConfig; // Configuration parameters
bool mForceHideAmorWidget;
QPtrQueue<QueueItem> mTipsQueue; // GP: tips queue
};
//---------------------------------------------------------------------------
class AmorSessionWidget : public QWidget
{
Q_OBJECT
public:
AmorSessionWidget();
~AmorSessionWidget() {};
public slots:
void wm_saveyourself();
};
#endif // AMOR_H

@ -0,0 +1,254 @@
/* amoranim.cpp
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#include <stdlib.h>
#include <kapplication.h>
#include <kstandarddirs.h>
#include "amoranim.h"
#include "amorpm.h"
//---------------------------------------------------------------------------
//
// Constructor
//
AmorAnim::AmorAnim(KConfigBase &config)
: mMaximumSize(0, 0)
{
mCurrent = 0;
mTotalMovement = 0;
readConfig(config);
}
//---------------------------------------------------------------------------
//
// Destructor
//
AmorAnim::~AmorAnim()
{
}
//---------------------------------------------------------------------------
//
// Get the Pixmap for the current frame.
//
const QPixmap *AmorAnim::frame()
{
const QPixmap *pixmap = 0;
if (validFrame())
pixmap = AmorPixmapManager::manager()->pixmap(*mSequence.at(mCurrent));
return pixmap;
}
//---------------------------------------------------------------------------
//
// Read a single animation's parameters. The config class should already
// have its group set to the animation that is to be read.
//
void AmorAnim::readConfig(KConfigBase &config)
{
// Read the list of frames to display and load them into the pixmap
// manager.
mSequence = config.readListEntry("Sequence");
int frames = mSequence.count();
for ( QStringList::Iterator it = mSequence.begin();
it != mSequence.end();
++it )
{
const QPixmap *pixmap =
AmorPixmapManager::manager()->load(*it);
if (pixmap)
mMaximumSize = mMaximumSize.expandedTo(pixmap->size());
}
// Read the delays between frames.
QStrList list;
int entries = config.readListEntry("Delay",list);
mDelay.resize(frames);
for (int i = 0; i < entries && i < frames; i++)
mDelay[i] = atoi(list.at(i));
// Read the distance to move between frames and calculate the total
// distance that this aniamtion moves from its starting position.
entries = config.readListEntry("Movement",list);
mMovement.resize(frames);
for (int i = 0; i < entries && i < frames; i++)
{
mMovement[i] = atoi(list.at(i));
mTotalMovement += mMovement[i];
}
// Read the hotspot for each frame.
entries = config.readListEntry("HotspotX",list);
mHotspot.resize(frames);
for (int i = 0; i < entries && i < frames; i++)
mHotspot[i].setX(atoi(list.at(i)));
entries = config.readListEntry("HotspotY",list);
for (int i = 0; i < entries && i < frames; i++)
mHotspot[i].setY(atoi(list.at(i)));
// Add the overlap of the last frame to the total movement.
const QPoint &lastHotspot = mHotspot[mHotspot.size()-1];
if (mTotalMovement > 0)
{
const QPixmap *lastFrame =
AmorPixmapManager::manager()->pixmap(mSequence.last());
if (lastFrame)
{
mTotalMovement += (lastFrame->width() - lastHotspot.x());
}
}
else if (mTotalMovement < 0)
{
mTotalMovement -= lastHotspot.x();
}
}
//===========================================================================
AmorThemeManager::AmorThemeManager()
: mMaximumSize(0, 0)
{
mConfig = 0;
mAnimations.setAutoDelete(true);
}
//---------------------------------------------------------------------------
//
AmorThemeManager::~AmorThemeManager()
{
delete mConfig;
}
//---------------------------------------------------------------------------
//
bool AmorThemeManager::setTheme(const QString & file)
{
mPath = locate("appdata", file);
delete mConfig;
mConfig = new KSimpleConfig(mPath, true);
mConfig->setGroup("Config");
// Get the directory where the pixmaps are stored and tell the
// pixmap manager.
QString pixmapPath = mConfig->readPathEntry("PixmapPath");
if (pixmapPath.isEmpty())
return false;
if (pixmapPath[0] == '/')
{
// absolute path to pixmaps
mPath = pixmapPath;
}
else
{
// relative to config file.
mPath.truncate(mPath.findRev('/')+1);
mPath += pixmapPath;
}
mStatic = mConfig->readBoolEntry("Static", false);
mMaximumSize.setWidth(0);
mMaximumSize.setHeight(0);
mAnimations.clear();
return true;
}
//---------------------------------------------------------------------------
//
// Select an animimation randomly from a group
//
AmorAnim *AmorThemeManager::random(const QString & group)
{
QString grp( group );
if (mStatic)
grp = "Base";
AmorAnimationGroup *animGroup = mAnimations.find(grp);
if (animGroup) {
int idx = kapp->random()%animGroup->count();
return animGroup->at( idx );
}
return 0;
}
//---------------------------------------------------------------------------
//
// Read an animation group.
//
bool AmorThemeManager::readGroup(const QString & seq)
{
AmorPixmapManager::manager()->setPixmapDir(mPath);
AmorAnimationGroup *animList = new AmorAnimationGroup;
animList->setAutoDelete(true);
// Read the list of available animations.
mConfig->setGroup("Config");
QStrList list;
int entries = mConfig->readListEntry(seq, list);
// Read each individual animation
for (int i = 0; i < entries; i++)
{
mConfig->setGroup(list.at(i));
AmorAnim *anim = new AmorAnim(*mConfig);
animList->append(anim);
mMaximumSize = mMaximumSize.expandedTo(anim->maximumSize());
}
// If no animations were available for this group, just add the base anim
if (entries == 0)
{
mConfig->setGroup("Base");
AmorAnim *anim = new AmorAnim(*mConfig);
if (anim)
{
animList->append(anim);
mMaximumSize = mMaximumSize.expandedTo(anim->maximumSize());
entries++;
}
}
// Couldn't read any entries at all
if (entries == 0)
return false;
mAnimations.insert(seq, animList);
return true;
}

@ -0,0 +1,117 @@
/* amoranim.h
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#ifndef AMORANIM_H
#define AMORANIM_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdlib.h>
#include <unistd.h>
#include <qmemarray.h>
#include <qdict.h>
#include <qstringlist.h>
#include <kconfigbase.h>
#include <ksimpleconfig.h>
//---------------------------------------------------------------------------
//
// AmorAnim contains the properties of a single animation
//
class AmorAnim
{
public:
AmorAnim(KConfigBase &config);
virtual ~AmorAnim();
void reset()
{ mCurrent = 0; }
bool next()
{ return (++mCurrent < mSequence.count()); }
int frameNum() const
{ return mCurrent; }
bool validFrame() const
{ return (mCurrent < mSequence.count()); }
int totalMovement() const
{ return mTotalMovement; }
QSize maximumSize() const
{ return mMaximumSize; }
int delay() const
{ return (validFrame() ? mDelay[mCurrent] : 100); }
QPoint hotspot() const
{ return (validFrame() ? mHotspot[mCurrent] : QPoint(16,16)); }
int movement() const
{ return (validFrame() ? mMovement[mCurrent] : 0); }
const QPixmap *frame();
protected:
void readConfig(KConfigBase &config);
protected:
unsigned int mCurrent; // current frame in sequence
QStringList mSequence; // sequence of images to display
QMemArray<int> mDelay; // delay between frames
QMemArray<QPoint> mHotspot; // the hotspot in a frame
QMemArray<int> mMovement; // the distance to move between frames
int mTotalMovement; // the total distance this animation moves
QSize mMaximumSize; // the maximum size of any frame
};
//---------------------------------------------------------------------------
typedef QPtrList<AmorAnim> AmorAnimationGroup;
//---------------------------------------------------------------------------
//
// AmorThemeManager maintains an animation theme
//
class AmorThemeManager
{
public:
AmorThemeManager();
virtual ~AmorThemeManager();
bool setTheme(const QString & file);
bool readGroup(const QString & seq);
bool isStatic() const
{ return mStatic; }
AmorAnim *random(const QString & group);
QSize maximumSize() const { return mMaximumSize; }
protected:
QString mPath;
KSimpleConfig *mConfig;
QSize mMaximumSize; // The largest pixmap used
QDict<AmorAnimationGroup> mAnimations; // list of animation groups
bool mStatic; // static image
};
#endif // AMORANIM_H

@ -0,0 +1,250 @@
/* amorbubble.cpp
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#include "amorbubble.h"
#include "amorbubble.moc"
#include <qpainter.h>
#include <ktextbrowser.h>
#include <qtooltip.h>
#include <kstandarddirs.h>
#include <X11/Xlib.h>
#include <X11/extensions/shape.h>
#include <qtimer.h>
#define ARROW_WIDTH 10
#define ARROW_HEIGHT 12
#define BORDER_SIZE 4
#define BUBBLE_OFFSET 16
#define BUBBLE_TIMEOUT 4000 // Minimum milliseconds to display a tip
//---------------------------------------------------------------------------
//
// Constructor
//
AmorBubble::AmorBubble()
: QWidget(0, 0, WStyle_Customize | WStyle_NoBorder | WX11BypassWM )
{
mOriginX = 0;
mOriginY = 0;
mBrowser = new KTextBrowser( this );
mBrowser->setFrameStyle( QFrame::NoFrame | QFrame::Plain );
mBrowser->setMargin( 0 );
mBrowser->setWrapPolicy(QTextEdit::AtWordOrDocumentBoundary); // too long to fit in one line?
QColorGroup clgrp = mBrowser->colorGroup();
clgrp.setColor(QColorGroup::Text, Qt::black);
//Laurent QTextBrowser didn't have this function FIX me
//mBrowser->setPaperColorGroup( clgrp );
mBrowser->setPaper( QToolTip::palette().active().brush( QColorGroup::Background ) );
mBrowser->setVScrollBarMode( QTextBrowser::AlwaysOff );
mBrowser->setHScrollBarMode( QTextBrowser::AlwaysOff );
mBrowser->viewport()->installEventFilter( this );
mBrowser->mimeSourceFactory()->addFilePath(KGlobal::dirs()->findResourceDir("data", "kdewizard/pics")+"kdewizard/pics/");
QStringList icons = KGlobal::dirs()->resourceDirs("icon");
QStringList::Iterator it;
for (it = icons.begin(); it != icons.end(); ++it)
mBrowser->mimeSourceFactory()->addFilePath(*it);
mMouseWithin = false;
}
//---------------------------------------------------------------------------
//
// Destructor
//
AmorBubble::~AmorBubble()
{
}
//---------------------------------------------------------------------------
//
// Set the message to display in the bubble. Causes the geometry of the
// widget to be recalculated.
//
void AmorBubble::setMessage(const QString& message)
{
mMessage = QString( "<html>%1</html>" ).arg( message );
// hacks because heightForWidth() doesn't work.
setGeometry( -1000, 0, 300, 1000 );
show();
mBrowser->setGeometry( 0, 0, 250, 1000 );
mBrowser->setText( mMessage );
calcGeometry();
}
//---------------------------------------------------------------------------
//
// Calculates the size, position and mask of the bubble
//
void AmorBubble::calcGeometry()
{
mBound = QRect( 0, 0, 250, 0 );
// mBound.setHeight( mBrowser->heightForWidth( mBound.width() ) );
mBound.setHeight( mBrowser->contentsHeight() );
mBound.moveBy(ARROW_WIDTH+BORDER_SIZE, BORDER_SIZE);
// initialise the default geometry of the bubble
int w = mBound.width() + BORDER_SIZE * 2 + ARROW_WIDTH;
int h = mBound.height() + BORDER_SIZE * 2;
int xpos = mOriginX + BUBBLE_OFFSET;
int ypos = mOriginY - BORDER_SIZE - ARROW_HEIGHT / 2;
mArrowVert = Top;
mArrowHorz = Left;
// The actual position of the bubble may change if it is too close to
// the desktop boundary.
if (mOriginX + w > kapp->desktop()->width())
{
// source on right
xpos = mOriginX - w - BUBBLE_OFFSET;
mArrowHorz = Right;
mBound.moveBy( -ARROW_WIDTH, 0 );
}
if (mOriginY + h > kapp->desktop()->height())
{
// source at bottom
ypos = mOriginY - h + BORDER_SIZE + ARROW_HEIGHT / 2;
mArrowVert = Bottom;
}
// Check for negative vertical bubble position (top of the screen)
if ( ypos < 0 )
ypos = 0;
setGeometry(xpos, ypos, w, h);
mBrowser->setGeometry( mBound );
// create and apply the shape mask
mMask.resize(w, h);
mMask.fill(color0);
QPainter maskPainter(&mMask);
maskPainter.setPen(color1);
maskPainter.setBrush(color1);
drawBubble(maskPainter);
XShapeCombineMask( x11Display(), winId(), ShapeBounding, 0, 0,
mMask.handle(), ShapeSet );
}
//---------------------------------------------------------------------------
//
// Draw the bubble that text will be draw into using the current pen
// as the outline and the current brush as the fill.
//
void AmorBubble::drawBubble(QPainter &p)
{
QPointArray pointArray(3);
int left = ARROW_WIDTH;
if (mArrowHorz == Left)
{
pointArray.setPoint(0, ARROW_WIDTH+1, 0);
pointArray.setPoint(1, 0, -3);
pointArray.setPoint(2, ARROW_WIDTH+1, ARROW_HEIGHT);
}
else
{
pointArray.setPoint(0, 0, 0);
pointArray.setPoint(1, ARROW_WIDTH+1, -3);
pointArray.setPoint(2, 0, ARROW_HEIGHT);
pointArray.translate(width() - ARROW_WIDTH - 1, 0);
left = 0;
}
if (mArrowVert == Top)
{
pointArray.translate(0, BORDER_SIZE + ARROW_HEIGHT / 2);
}
else
{
pointArray.translate(0, height() - BORDER_SIZE - ARROW_HEIGHT / 2);
}
// p.drawRoundRect(left, 0, width() - ARROW_WIDTH, height(), 10, 20);
p.drawRect(left, 0, width() - ARROW_WIDTH, height());
QPen pen(p.pen());
p.setPen(NoPen);
p.drawPolygon(pointArray);
p.setPen(pen);
p.drawPolyline(pointArray, 0, 3);
}
//---------------------------------------------------------------------------
//
// Draw the message in a bubble
//
void AmorBubble::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setPen(black);
painter.setBrush( QToolTip::palette().active().brush( QColorGroup::Background ) );
drawBubble(painter);
}
//---------------------------------------------------------------------------
//
// The user clicked on the widget
//
void AmorBubble::mouseReleaseEvent(QMouseEvent *)
{
hide();
}
//---------------------------------------------------------------------------
//
bool AmorBubble::eventFilter( QObject *, QEvent *e )
{
switch ( e->type() )
{
// GP case QEvent::Enter:
// GP mBubbleTimer->stop();
// GP break;
// GP case QEvent::Leave:
// GP if ( isVisible() )
// GP mBubbleTimer->start( 1000, true );
// GP break;
case QEvent::Enter:
mMouseWithin = true;
break;
case QEvent::Leave:
mMouseWithin = false;
break;
case QEvent::MouseButtonRelease:
hide(); // GP This is the only reason a bubble might posibly be created but hidden
break;
default:
break;
}
return false;
}

@ -0,0 +1,81 @@
/* amorbubble.h
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#ifndef AMORBUBBLE_H
#define AMORBUBBLE_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <kapplication.h>
#include <qwidget.h>
#include <qbitmap.h>
class QTextBrowser;
class QTimer;
//---------------------------------------------------------------------------
//
// AmorBubble displays a message in a shaped window
//
class AmorBubble : public QWidget
{
Q_OBJECT
public:
AmorBubble();
virtual ~AmorBubble();
void setOrigin(int x, int y) { mOriginX = x; mOriginY = y; }
void setMessage(const QString& message);
bool mouseWithin() { return mMouseWithin; }
protected:
enum VertPos { Top, Bottom };
enum HorzPos { Left, Right };
void calcGeometry();
void drawBubble(QPainter &p);
virtual void paintEvent(QPaintEvent *);
virtual void mouseReleaseEvent(QMouseEvent *);
virtual bool eventFilter( QObject *, QEvent * );
protected:
QString mMessage; // message to display
int mOriginX; // X origin of bubble arrow
int mOriginY; // Y origin of bubble arrow
QRect mBound; // bounds of the text
QBitmap mMask; // shape mask
VertPos mArrowVert; // vertical position of the arrow
HorzPos mArrowHorz; // horizontal position of the arrow
QTextBrowser *mBrowser; // displays the message
bool mMouseWithin; // the mouse pointer is inside the bubble
};
#endif // AMORBUBBLE_H

@ -0,0 +1,83 @@
/* amorconfig.cpp
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#include <kapplication.h>
#include "amorconfig.h"
#include <kconfig.h>
//---------------------------------------------------------------------------
//
// Constructor
//
AmorConfig::AmorConfig()
{
mOnTop = false;
mOffset = 0;
mTheme = "blobrc";
mTips = false;
mAppTips = true;
mStaticPos = 20;
}
//---------------------------------------------------------------------------
//
// Read the configuration
//
void AmorConfig::read()
{
KConfig *config = kapp->config();
KConfigGroupSaver cs(config, "General");
mOnTop = config->readBoolEntry("OnTop", false);
mOffset = config->readNumEntry("Offset", 0);
mTheme = config->readEntry("Theme", "blobrc");
mTips = config->readBoolEntry("Tips", false);
mRandomTheme = config->readBoolEntry("RandomTheme", false);
mAppTips = config->readBoolEntry("ApplicationTips", true);
mStaticPos = config->readNumEntry("StaticPosition", 20);
}
//---------------------------------------------------------------------------
//
// Write the configuration
//
void AmorConfig::write()
{
KConfig *config = kapp->config();
KConfigGroupSaver cs(config, "General");
config->writeEntry("OnTop", mOnTop);
config->writeEntry("Offset", mOffset);
config->writeEntry("Theme", mTheme);
config->writeEntry("Tips", mTips);
config->writeEntry("RandomTheme", mRandomTheme);
config->writeEntry("ApplicationTips", mAppTips);
config->writeEntry("StaticPosition", mStaticPos);
config->sync();
}

@ -0,0 +1,58 @@
/* amorconfig.h
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#ifndef AMORCONFIG_H
#define AMORCONFIG_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <qstring.h>
//---------------------------------------------------------------------------
//
// AmorConfig contains amor configuration parameters
//
class AmorConfig
{
public:
AmorConfig();
void read();
void write();
QString mTheme;
bool mOnTop;
int mOffset;
bool mTips;
bool mRandomTheme;
bool mAppTips;
int mStaticPos;
};
#endif // AMORCONFIG_H

@ -0,0 +1,285 @@
/* amordialog.cpp
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#include <qcheckbox.h>
#include <qlabel.h>
#include <qslider.h>
#include <qpainter.h>
#include <kapplication.h>
#include <ksimpleconfig.h>
#include "amordialog.h"
#include "amordialog.moc"
#include "version.h"
#include <klocale.h>
#include <qvbox.h>
#include <kstandarddirs.h>
//---------------------------------------------------------------------------
//
// Constructor
//
AmorDialog::AmorDialog()
: KDialogBase(0, "amordlg", false, i18n("Options"), Ok|Apply|Cancel, Ok )
{
mConfig.read();
QVBox *mainwidget = makeVBoxMainWidget();
QHBox *hb = new QHBox(mainwidget);
// Theme list
QVBox *themeBox = new QVBox(hb);
themeBox->setSpacing(spacingHint());
QLabel *label = new QLabel(i18n("Theme:"), themeBox);
mThemeListBox = new QListBox(themeBox);
connect(mThemeListBox,SIGNAL(highlighted(int)),SLOT(slotHighlighted(int)));
mThemeListBox->setMinimumSize( fontMetrics().maxWidth()*20,
fontMetrics().lineSpacing()*6 );
mAboutEdit = new QMultiLineEdit(themeBox);
mAboutEdit->setReadOnly(true);
mAboutEdit->setMinimumHeight( fontMetrics().lineSpacing()*4 );
themeBox->setStretchFactor(mThemeListBox, 4);
themeBox->setStretchFactor(mAboutEdit, 1);
// Animation offset
QVBox *offsetBox = new QVBox(hb);
offsetBox->setSpacing(spacingHint());
label = new QLabel(i18n("Offset:"), offsetBox);
QSlider *slider = new QSlider(-40, 40, 5, mConfig.mOffset,
QSlider::Vertical, offsetBox);
connect(slider, SIGNAL(valueChanged(int)), SLOT(slotOffset(int)));
// Always on top
QCheckBox *checkBox = new QCheckBox(i18n("Always on top"), mainwidget);
connect(checkBox, SIGNAL(toggled(bool)), SLOT(slotOnTop(bool)));
checkBox->setChecked(mConfig.mOnTop);
checkBox = new QCheckBox(i18n("Show random tips"), mainwidget);
connect(checkBox, SIGNAL(toggled(bool)), SLOT(slotRandomTips(bool)));
checkBox->setChecked(mConfig.mTips); // always keep this one after the connect, or the QList would not be grayed when it should
checkBox = new QCheckBox(i18n("Use a random character"), mainwidget);
connect(checkBox, SIGNAL(toggled(bool)), SLOT(slotRandomTheme(bool)));
checkBox->setChecked(mConfig.mRandomTheme);
checkBox = new QCheckBox(i18n("Allow application tips"), mainwidget);
connect(checkBox, SIGNAL(toggled(bool)), SLOT(slotApplicationTips(bool)));
checkBox->setChecked(mConfig.mAppTips);
readThemes();
}
//---------------------------------------------------------------------------
//
// Destructor
//
AmorDialog::~AmorDialog()
{
}
//---------------------------------------------------------------------------
//
// Get list of all themes
//
void AmorDialog::readThemes()
{
QStringList files;
// Non-recursive search for theme files, with the relative paths stored
// in files so that absolute paths are not used.
KGlobal::dirs()->findAllResources("appdata", "*rc", false, false, files);
for (QStringList::ConstIterator it = files.begin();
it != files.end();
it++)
addTheme(*it);
}
//---------------------------------------------------------------------------
//
// Add a single theme to the list
//
void AmorDialog::addTheme(const QString& file)
{
KSimpleConfig config(locate("appdata", file), true);
config.setGroup("Config");
QString pixmapPath = config.readPathEntry("PixmapPath");
if (pixmapPath.isEmpty())
{
return;
}
pixmapPath += "/";
if (pixmapPath[0] != '/')
{
// relative to config file. We add a / to indicate the dir
pixmapPath = locate("appdata", pixmapPath);
}
QString description = config.readEntry("Description");
QString about = config.readEntry("About", " ");
QString pixmapName = config.readEntry("Icon");
pixmapPath += pixmapName;
QPixmap pixmap(pixmapPath);
AmorListBoxItem *item = new AmorListBoxItem(description, pixmap);
mThemeListBox->insertItem(item);
mThemes.append(file);
mThemeAbout.append(about);
if (mConfig.mTheme == file)
{
mThemeListBox->setSelected(mThemeListBox->count()-1, true);
}
}
//---------------------------------------------------------------------------
//
// User highlighted a theme
//
void AmorDialog::slotHighlighted(int index)
{
mConfig.mTheme = *mThemes.at(index);
mAboutEdit->setText(*mThemeAbout.at(index));
}
//---------------------------------------------------------------------------
//
// User changed offset
//
void AmorDialog::slotOffset(int off)
{
mConfig.mOffset = off;
emit offsetChanged(mConfig.mOffset);
}
//---------------------------------------------------------------------------
//
// User toggled always on top
//
void AmorDialog::slotOnTop(bool onTop)
{
mConfig.mOnTop = onTop;
}
//---------------------------------------------------------------------------
//
// User toggled random tips
//
void AmorDialog::slotRandomTips(bool tips)
{
mConfig.mTips = tips;
}
//---------------------------------------------------------------------------
//
// User toggled random character
//
void AmorDialog::slotRandomTheme(bool randomTheme)
{
mThemeListBox->setEnabled(!randomTheme);
mConfig.mRandomTheme = randomTheme;
}
//---------------------------------------------------------------------------
//
// User toggled application tips
//
void AmorDialog::slotApplicationTips(bool tips)
{
mConfig.mAppTips = tips;
}
//---------------------------------------------------------------------------
//
// User clicked Ok
//
void AmorDialog::slotOk()
{
mConfig.write();
emit changed();
accept();
}
//---------------------------------------------------------------------------
//
// User clicked Ok
//
void AmorDialog::slotApply()
{
mConfig.write();
emit changed();
}
//---------------------------------------------------------------------------
//
// User clicked Cancel
//
void AmorDialog::slotCancel()
{
// restore offset
KConfig *config = kapp->config();
KConfigGroupSaver cs(config, "General");
emit offsetChanged(config->readNumEntry("Offset"));
reject();
}
//===========================================================================
//
// AmorListBoxItem implements a list box items for selection of themes
//
void AmorListBoxItem::paint( QPainter *p )
{
p->drawPixmap( 3, 0, mPixmap );
QFontMetrics fm = p->fontMetrics();
int yPos; // vertical text position
if ( mPixmap.height() < fm.height() )
yPos = fm.ascent() + fm.leading()/2;
else
yPos = mPixmap.height()/2 - fm.height()/2 + fm.ascent();
p->drawText( mPixmap.width() + 5, yPos, text() );
}
int AmorListBoxItem::height(const QListBox *lb ) const
{
return QMAX( mPixmap.height(), lb->fontMetrics().lineSpacing() + 1 );
}
int AmorListBoxItem::width(const QListBox *lb ) const
{
return mPixmap.width() + lb->fontMetrics().width( text() ) + 6;
}

@ -0,0 +1,107 @@
/* amordialog.h
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#ifndef AMORDIALOG_H
#define AMORDIALOG_H
#include <qdialog.h>
#include <qlistbox.h>
#include <qptrlist.h>
#include <qmultilineedit.h>
#include "amorconfig.h"
#include <kdialogbase.h>
//---------------------------------------------------------------------------
//
// AmorDialog provides a setup dialog.
//
class AmorDialog : public KDialogBase
{
Q_OBJECT
public:
AmorDialog();
virtual ~AmorDialog();
signals:
//-----------------------------------------------------------------------
//
// The configuration has changed in some way.
//
void changed();
//-----------------------------------------------------------------------
//
// The animation offset has been changed.
//
void offsetChanged(int);
protected slots:
void slotHighlighted(int);
void slotOnTop(bool);
void slotRandomTips(bool);
void slotRandomTheme(bool);
void slotApplicationTips(bool);
void slotOffset(int);
void slotOk();
void slotApply();
void slotCancel();
protected:
void readThemes();
void addTheme(const QString& file);
protected:
QListBox *mThemeListBox;
QMultiLineEdit *mAboutEdit;
QStringList mThemes;
QStringList mThemeAbout;
AmorConfig mConfig;
};
//---------------------------------------------------------------------------
//
// AmorListBoxItem implements a list box items for selection of themes
//
class AmorListBoxItem : public QListBoxItem
{
public:
AmorListBoxItem(const QString & s, const QPixmap& p)
: QListBoxItem(), mPixmap(p)
{ setText(s); }
protected:
virtual void paint(QPainter *);
virtual int height(const QListBox *) const;
virtual int width(const QListBox *) const;
virtual const QPixmap *pixmap() const { return &mPixmap; }
private:
QPixmap mPixmap;
};
#endif // AMORDIALOG_H

@ -0,0 +1,94 @@
/* amorpm.cpp
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#include "amorpm.h"
// static
AmorPixmapManager *AmorPixmapManager::mManager = 0;
//---------------------------------------------------------------------------
//
// Constructor
//
AmorPixmapManager::AmorPixmapManager()
: mPixmapDir(".")
{
mPixmaps.setAutoDelete(true);
}
//---------------------------------------------------------------------------
//
// Destructor
//
AmorPixmapManager::~AmorPixmapManager()
{
}
//---------------------------------------------------------------------------
//
// Load an image into the image manager
//
// Returns:
// pointer to pixmap if loaded successfully, 0 otherwise.
//
const QPixmap *AmorPixmapManager::load(const QString & img)
{
QPixmap *pixmap = mPixmaps.find(img);
if (!pixmap)
{
// pixmap has not yet been loaded.
QString path = mPixmapDir + QString("/") + img;
pixmap = new QPixmap(path);
if (!pixmap->isNull())
{
mPixmaps.insert(img,pixmap);
}
else
{
delete pixmap;
pixmap = 0;
}
}
return pixmap;
}
//---------------------------------------------------------------------------
//
// returns a pointer to the pixmap manager.
//
AmorPixmapManager *AmorPixmapManager::manager()
{
if (!mManager)
{
mManager = new AmorPixmapManager();
}
return mManager;
}

@ -0,0 +1,64 @@
/* amorpm.h
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#ifndef AMORPM_H
#define AMORPM_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <qdict.h>
#include <qpixmap.h>
//---------------------------------------------------------------------------
//
// AmorPixmapManager stores the frames used in animations.
//
class AmorPixmapManager
{
public:
AmorPixmapManager();
virtual ~AmorPixmapManager();
void setPixmapDir(const QString &dir)
{ mPixmapDir = dir; }
void reset()
{ mPixmapDir = "."; mPixmaps.clear(); }
const QPixmap *load(const QString & img);
const QPixmap *pixmap(const QString & img) const
{ return mPixmaps.find(img); }
static AmorPixmapManager *manager();
public:
QString mPixmapDir; // get pixmaps from here
QDict<QPixmap> mPixmaps; // list of pixmaps
static AmorPixmapManager *mManager; // static pointer to instance
};
#endif // AMORPM_H

@ -0,0 +1,181 @@
/* amortips.cpp
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#include <stdlib.h>
#include <kapplication.h>
#include "amortips.h"
#include <kstandarddirs.h>
#include <klocale.h>
#include <qfile.h>
#include <qregexp.h>
#include <kdebug.h>
//---------------------------------------------------------------------------
//
AmorTips::AmorTips()
{
KGlobal::locale()->insertCatalogue("ktip"); // For ktip tip translations
}
//---------------------------------------------------------------------------
//
// Set the file containing tips. This reads all tips into memory at the
// moment - need to make more efficient.
//
bool AmorTips::setFile(const QString& file)
{
bool rv = false;
QString path( locate("appdata", file) );
if(path.length() && read(path))
rv = true;
rv |= readKTips();
return rv;
}
//---------------------------------------------------------------------------
//
// Clear all tips from memory
//
void AmorTips::reset()
{
mTips.clear();
}
//---------------------------------------------------------------------------
//
// Get a tip randomly from the list
//
QString AmorTips::tip()
{
if (mTips.count())
{
QString tip = *mTips.at(kapp->random() % mTips.count());
return i18n(tip.utf8());
}
return i18n("No tip");
}
//---------------------------------------------------------------------------
//
// Read the tips from ktip's file
//
bool AmorTips::readKTips()
{
QString fname;
fname = locate("data", QString("kdewizard/tips"));
if (fname.isEmpty())
return false;
QFile f(fname);
if (f.open(IO_ReadOnly))
{
// Reading of tips must be exactly as in KTipDatabase::loadTips for translation
QString content = f.readAll();
const QRegExp rx("\\n+");
int pos = -1;
while ((pos = content.find("<html>", pos + 1, false)) != -1)
{
QString tip = content
.mid(pos + 6, content.find("</html>", pos, false) - pos - 6)
.replace(rx, "\n");
if (!tip.endsWith("\n"))
tip += "\n";
if (tip.startsWith("\n"))
tip = tip.mid(1);
if (tip.isEmpty())
{
kdDebug() << "Empty tip found! Skipping! " << pos << endl;
continue;
}
mTips.append(tip);
}
f.close();
}
return true;
}
//---------------------------------------------------------------------------
//
// Read all tips from the specified file.
//
bool AmorTips::read(const QString& path)
{
QFile file(path);
if (file.open(IO_ReadOnly))
{
while (!file.atEnd())
{
readTip(file);
}
return true;
}
return false;
}
//---------------------------------------------------------------------------
//
// Read a single tip.
//
bool AmorTips::readTip(QFile &file)
{
char buffer[1024] = "";
QString tip;
while (!file.atEnd() && buffer[0] != '%')
{
file.readLine(buffer, 1024);
if (buffer[0] != '%')
{
tip += QString::fromUtf8(buffer);
}
}
if (!tip.isEmpty())
{
if (tip[tip.length()-1] == '\n')
{
tip.truncate(tip.length()-1);
}
mTips.append(tip);
return true;
}
return false;
}

@ -0,0 +1,60 @@
/* amortips.h
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#ifndef AMORTIPS_H
#define AMORTIPS_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <qstrlist.h>
class QFile;
//---------------------------------------------------------------------------
//
// AmorTips selects random tips from a data file
//
class AmorTips
{
public:
AmorTips();
bool setFile(const QString& file);
void reset();
QString tip();
protected:
bool readKTips();
bool read(const QString& file);
bool readTip(QFile &file);
protected:
QStringList mTips;
};
#endif // AMORTIPS_H

@ -0,0 +1,125 @@
/* amorwidget.cpp
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#include "amorwidget.h"
#include "amorwidget.moc"
#include <qbitmap.h>
#include <X11/Xlib.h>
#include <X11/extensions/shape.h>
//---------------------------------------------------------------------------
//
// Constructor
//
AmorWidget::AmorWidget()
: QWidget(0, 0, WStyle_Customize | WStyle_NoBorder | WX11BypassWM ),
mPixmap(0)
{
setBackgroundMode( NoBackground );
dragging = false;
}
//---------------------------------------------------------------------------
//
// Destructor
//
AmorWidget::~AmorWidget()
{
}
//---------------------------------------------------------------------------
//
// Set the pixmap to display
//
void AmorWidget::setPixmap(const QPixmap *pixmap)
{
mPixmap = pixmap;
if (mPixmap)
{
if (mPixmap->mask())
{
XShapeCombineMask( x11Display(), winId(), ShapeBounding, 0, 0,
mPixmap->mask()->handle(), ShapeSet );
repaint(false);
}
update();
}
}
//---------------------------------------------------------------------------
//
// Draw the pixmap
//
void AmorWidget::paintEvent(QPaintEvent *)
{
if (mPixmap)
bitBlt( this, 0, 0, mPixmap );
else
erase();
}
//---------------------------------------------------------------------------
//
// The user clicked on the widget
//
void AmorWidget::mousePressEvent(QMouseEvent *me)
{
clickPos = me->globalPos();
}
//---------------------------------------------------------------------------
//
// The user moved the mouse
//
void AmorWidget::mouseMoveEvent(QMouseEvent *me)
{
if ( me->state() == LeftButton ) {
if ( !dragging && (clickPos-me->globalPos()).manhattanLength() > 3 )
dragging = true;
if ( dragging ) {
emit dragged( me->globalPos() - clickPos, false );
clickPos = me->globalPos();
}
}
}
//---------------------------------------------------------------------------
//
// The user clicked on the widget
//
void AmorWidget::mouseReleaseEvent(QMouseEvent *me)
{
if ( dragging )
emit dragged( me->globalPos() - clickPos, true );
else if ( me->state() == RightButton )
emit mouseClicked(clickPos);
clickPos = QPoint();
dragging = false;
}

@ -0,0 +1,67 @@
/* amorwidget.h
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#ifndef AMORWIDGET_H
#define AMORWIDGET_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <kapplication.h>
#include <qwidget.h>
//---------------------------------------------------------------------------
//
// AmorWidget displays a shaped pixmap
//
class AmorWidget : public QWidget
{
Q_OBJECT
public:
AmorWidget();
virtual ~AmorWidget();
void setPixmap(const QPixmap *pixmap);
signals:
void mouseClicked(const QPoint &pos);
void dragged( const QPoint &delta, bool release );
protected:
void paintEvent(QPaintEvent *);
void mousePressEvent(QMouseEvent *);
void mouseMoveEvent(QMouseEvent *);
void mouseReleaseEvent(QMouseEvent *);
protected:
const QPixmap *mPixmap;
QPoint clickPos;
bool dragging;
};
#endif // AMORWIDGET_H

@ -0,0 +1,3 @@
if test "x$kde_use_qt_mac" = "xyes"; then
DO_NOT_COMPILE="$DO_NOT_COMPILE amor"
fi

@ -0,0 +1,14 @@
SUBDIRS = pics
amor_DATA = blobrc ghostrc eyesrc bonhommerc nekorc pingurc wormrc tips-en \
billyrc bsdrc tuxrc taorc
# This is where it will all be installed
amordir = $(kde_datadir)/amor
install-data-local:
-rm -f $(DESTDIR)$(amordir)/tips
$(LN_S) $(amordir)/tips-en $(DESTDIR)$(amordir)/tips
uninstall-local:
-rm -f $(DESTDIR)$(amordir)/tips

@ -0,0 +1,129 @@
# KDE Config File
[Config]
PixmapPath=pics/static
Static=true
Description=Little Billy
Description[af]=Klein Billy
Description[ar]=بيل الصغير
Description[be]=Маленькі Біллі
Description[bg]=Малкият Били
Description[bn]=ছোট্ট বিলি
Description[br]=Billy Bihan
Description[bs]=Mali Billy
Description[ca]=Petit Guillem
Description[cs]=Malý Billy
Description[cy]=Bili Bach
Description[da]=Lille Billy
Description[de]=Klein Billy
Description[el]=Μικρός Billy
Description[eo]=Malgranda Bilĉjo
Description[es]=Pequeño Billy
Description[et]=Pisi-Villu
Description[eu]=Billy Txikia
Description[fa]=چوب‌دستی کوچک
Description[fi]=Pikku-Billy
Description[gl]=O Pequeno Billy
Description[he]=בילי הקטן
Description[hi]=नन्हा बिल्लू
Description[hr]=Mali Billy
Description[hu]=Billy fiú
Description[is]=Billi litli
Description[it]=Piccolo Bill
Description[ja]=リトルビル
Description[km]=កូនប៊ីលីតូច
Description[ko]=작은 빌리
Description[lt]=Mažasis Bilas
Description[lv]=Mazais Billijs
Description[mk]=Малиот Били
Description[mt]=Iċ-Ċkejken Billy
Description[nb]=Lille Billy
Description[nds]=Lütt Willi
Description[ne]=सानो बिल्ली
Description[nl]=Kleine Billy
Description[nn]=Litlebill
Description[pa]=ਛੋਟੀ ਬਿੱਲੀ
Description[pl]=Mały Billy
Description[pt]=Pequeno Bill
Description[pt_BR]=Pequeno Billy
Description[ro]=Micuţul Billy
Description[ru]=Маленький Билли
Description[sk]=Malý Billy
Description[sl]=Mali Billy
Description[sr]=Мали Били
Description[sr@Latn]=Mali Bili
Description[sv]=Lilla Billy
Description[ta]= லிட்டில் பில்யி
Description[tg]=Билли Пастқад
Description[th]=บิลลี่ตัวจ้อย
Description[tr]=Küçük Billy
Description[uk]=Маленький Біллі
Description[uz]=Kichik Billi
Description[uz@cyrillic]=Кичик Билли
Description[ven]=Billy Mutuku
Description[zh_CN]=小小比利
Description[zh_TW]=小比利
About=Static window sitter\nGraphic from http://www.xbill.org/
About[af]=Statiese venster sitter\nGraphic van http://www.xbill.org/
About[ar]=قاعدة النوافذ الساكنة \nالرسوم من http://www.xbill.org
About[az]=Statik pəncərə mürəbbiyəsi\nQrafikalar http://www.xbill.org/
About[be]=Статычны наглядчык вокнаў\nГрафіка з http://www.xbill.org/
About[bg]=Неанимирано човече\nГрафиката е взета от http://www.xbill.org/
About[bn]=উইন্ডোর এক স্থানে স্থির হয়ে বসে থাকে\nগ্রাফিক্সের উৎস - http://www.xbill.org/
About[bs]=Statički window sitter\nGrafika iz http://www.xbill.org/
About[ca]=Model de finestra estàtica\nGràfic de http://www.xbill.org/
About[cs]=Statická ozdoba okna\nGrafika z http://www.xbill.org/
About[cy]=Gwarchodydd ffenest sefydlog\nGraffeg oddiwrth http://www.xbill.org/
About[da]=Statisk vinduessitter\nGrafik fra http://www.xbill.org/
About[de]=Statischer Fenstersitzer\nGraphik von http://www.xbill.org/
About[el]=Στατικό εικονίδιο\nΓραφικό από το http://www.xbill.org/
About[eo]=Moviĝema fenestrosidulo\nGrafiko de http://www.xbill.org/
About[es]=Cuidador estático de ventanas\nGraphic from http://www.xbill.org/
About[et]=Liikumatu aknahoidja\nGraafika: http://www.xbill.org/
About[eu]=Lehio modelo egonkorra\nIrudia http://www.xbill.org/'tik
About[fa]=مدل پنجرۀ ایستا\nنگاره از http://www.xbill.org/
About[fi]=Staattinen ikkunakoriste\nGrafiikat osoitteesta http://www.xbill.org/
About[fr]=Surveillant statique de fenêtres\nDessin de http://www.xbill.org/
About[ga]=Peata statach fuinneoige\nGrafaic ó http://www.xbill.org/
About[gl]=Vixiante estático de fiestras\nImaxe sacada de http://www.xbill.org/
About[he]=שומר חלון סטטי\nגרפיקה מתוך /http://www.xbill.org
About[hi]=स्थिर विंडो सिटर\nचित्र http://www.xbill.org/ से
About[hr]=Statički sjedač na prozoru\nSlika preuzeta sa http://www.xbill.org/
About[hu]=Nem animált ablakdíszítés\nA grafika származási helye: http://www.xbill.org/
About[is]=Static window sitter\nMynd frá http://www.xbill.org/
About[it]=Immagine statica.\nGrafica presa da http://www.xbill.org/
About[ja]=動かないウィンドウ監視人\nグラフィックは http://www.xbill.org/ より
About[km]=អ្នក​ថែទាំ​បង្អួចថិតិវន្ត\nរចនាក្រាហ្វិកពី http://www.xbill.org/
About[lt]=Nejudantis sėdėtojas ant lango\nGrafika iš http://www.xbill.org/
About[lv]=Statisks uz loga sēdētājs\nGrafika no http://www.xbill.org/
About[mk]=Статичен седач врз прозорец\nСликата е од http://www.xbill.org/
About[mt]=Stampa statika\nGrafika minn http://www.xbill.org/
About[nb]=Statisk vindusitter\n Bilde fra http://www.xbill.org/
About[nds]=Fast Finstersitter\nGrafik vun http://www.xbill.org/
About[ne]=http://www.xbill.org/ बाट स्थिर सञ्झ्याल sitter\nGraphic
About[nl]=Statische vensterzitter\nAfbeeldingen van from http://www.xbill.org/
About[nn]=Statisk vindaugssitjar\nBilete frå http://www.xbill.org/
About[pl]=Obrazek w tym samym miejscu ekranu\nGrafika ze strony http://www.xbill.org/
About[pt]=Elemento estático sobre as janelas\nImagens de http://www.xbill.org/
About[pt_BR]=Janela Estática\nGráfica de http://www.xbill.org/
About[ro]=Imagine statică\nGrafică de la http://www.xbill.org/
About[ru]=Статичный сторож окон\nГрафика от http://www.xbill.org/
About[sk]=Statická ozdoba okna\nGrafika z http://www.xbill.org/
About[sl]=Statično okno\nGrafika z http://www.xbill.org/
About[sr]=Статични седач на прозору\nГрафика са http://www.xbill.org/
About[sr@Latn]=Statični sedač na prozoru\nGrafika sa http://www.xbill.org/
About[sv]=Statisk fönstervakt\nGrafik från http://www.xbill.org/
About[ta]= நிலையான சாளரம் \nவரைகலையில் இருந்து http://www.தமிழ்இணையம்.org/
About[tg]=Нигаҳбонии статикии тиреза\nГрафика аз http://www.xbill.org/
About[th]=นั่งเล่นบนหน้าต่าง\nกราฟิกจาก http://www.xbill.org/
About[tr]=Statik pencere bakıcısı\nGrafikler http://www.xbill.org/ 'tan
About[uk]=Натурщик статичного вікна\nГрафіка з http://www.xbill.org/
About[ven]=Tshidzuli tsha window isa tshimbili\nGirafu ubva http://www.xbill.org/
About[xh]=Isibambo sewindow esingashukumi\nUmzobo http://www.xbill.org/
About[zh_CN]=窗口静坐者\n图形来自 http://www.xbill.org/
Icon=../preview/billy.png
[Base]
Sequence=billy.png
HotspotX=14
HotspotY=40

@ -0,0 +1,312 @@
# KDE Config File
[Config]
PixmapPath=pics/animated/blob
Description=Multi-Talented Spot
Description[ar]=نقطة متعددة المواهب
Description[be]=Таленавіты калабок
Description[bg]=Всезнайко
Description[bn]=বহুমুখী প্রতিভাসম্পন্ন বিন্দু
Description[bs]=Više-talentirana tačka
Description[ca]=Anunci multi-dotat
Description[cs]=Talentovaný chlapík
Description[cy]=Smotyn Aml-Dalentog
Description[da]=Plet med multitalent
Description[de]=Das Multitalent
Description[el]=Πολυτάλαντη κουκκίδα
Description[eo]=Multtalenta makulo
Description[es]=Mancha multifacética
Description[et]=Väga andekas plekk
Description[eu]=Ahalmen Askodun Gunea
Description[fa]=شکارچی استعدادها
Description[fi]=Monitaitoinen piste
Description[fr]=Point à talents multiples
Description[ga]=Spota Ildánach
Description[gl]=Ponto con moitas faculdades
Description[he]=פרצוף כישרוני
Description[hi]=लाल बुझक्कड़
Description[hr]=Višestruko nadarena točka
Description[hu]=Spot
Description[is]=Fjölhæfur Depill
Description[it]=Macchia con molte abilità
Description[ja]=マルチタレントスポット
Description[km]=ក្បាល​មាន​ទេពកោសល្យ​ច្រើន
Description[ko]=다재다능한 점
Description[lv]=Multitalantīgs traips
Description[mk]=Мултиталентирана точка
Description[mt]=Ballun Bravu u Divertenti
Description[nb]=Flekk med mange talenter
Description[nds]=Dat Multitalent
Description[ne]=बहुँमुखी बिन्दु
Description[nl]=Multi-getalenteerde stip
Description[nn]=Talentfullt punkt
Description[pl]=Bardzo zdolna plamka
Description[pt]=Ponto Muito Talentoso
Description[pt_BR]=Spot com Multi-talentos
Description[ro]=Punct cu multiple talente
Description[ru]=Талантливое пятнышко
Description[sk]=Šikovný krúžok
Description[sl]=Splošno nadarjena pika
Description[sr]=Вишеталентована тачка
Description[sr@Latn]=Višetalentovana tačka
Description[sv]=Punkt med många talanger
Description[tg]=Одами Оқил
Description[th]=จุดอารมณ์ดี
Description[tr]=Çok Yetenekli Benek
Description[uk]=Здібна кулька
Description[xh]=Indawo Eneziphiwo Ezininzi
Description[zh_CN]=多才多艺的脸
About=By Martin R. Jones\nJet pack, beam and fire animations by Mark Grant
About[af]=Deur Martin R. Jones\nJet pak, straal en vuur animasie Deur Merk Toegestaan
About[ar]=من مارتن ر. جونز\nJet pack, الضوء, و النار من تصميم مارك غرانت
About[az]=Martin R. Jones tərəfindən\nJet pack, beam and fire animations by Mark Grant
About[be]=Аўтары Martin R. Jones\nАнімацыі агню, палёту і луча - Mark Grant
About[bg]=Автор Мартин Р. Джоунс\nПодобрения и анимация от Марк Гранд
About[bn]=তৈরি করেছেন মার্টিন আর. জোন্স\nজেট প্যাক, রশ্মি ও আগুনের অ্যানিমেশন তৈরি করেছেন মার্ক গ্র্যান্ট
About[bs]=Autor: Martin R. Jones\nAnimacije mlaznog ranca, zrake i pucanja napravio Mark Grant
About[ca]=Per Martin R. Jones\nPaquet jet, nau i animacions de foc per Mark Grant
About[cs]=Autor Martin R. Jones\nAnimace: Mark Grant
About[cy]=Gan Martin R. Jones\nAnimeiddiadau pecyn jet, pelydryn a tân gan Mark Grant
About[da]=Af Martin R. Jones\nJetpack, stråle- og brandanimationer af Mark Grant
About[de]=Von Martin R. Jones\nRaketenrucksack, Strahl- und Feueranimationen von Mark Grant
About[el]=Από τον Martin R. Jones\nJet pack, εφέ κίνησης ακτίνας και φωτιάς από τον Mark Grant
About[eo]=De Martin R. Jones\nĴetpako, radiado kaj fajrospektakleto de Mark Grant
About[es]=Por Martin R. Jones\nAnimaciones de la mochila a chorro, rayos y fuego por Mark Grant
About[et]=Autor: Martin R. Jones\nJet pack, beam and fire animatsioonid: Mark Grant
About[eu]=Martin R. Jonesek egina\nJet bilduma, tximista eta su animazioak Mark Grantek eginak
About[fa]=توسط مارتین آر. جونز \n، پویانماییهای فوران، پرتو و آتش توسط مارک گرانت
About[fi]=Tehnyt Martin R. Jones\nAnimaatiot Mark Grant
About[fr]=Par Martin R. Jones\nAnimations du jet et du feu par Mark Grant
About[ga]=Le Martin R. Jones\nÍomhánna beo den scairdphaca, léas, agus tine le Mark Grant
About[gl]=Por Martin R. Jones\nAs animacións do propulsor, do raio e do fogo son de Mark Grant
About[he]=מאת מרטין ר. ג'ונס\nאנימציות תעופה, שיגור והתלקחות מאת מארק גרנט
About[hi]=मार्टिन आर. जोन्स द्वारा\nजेट पैक, शहतीर तथा अग्नि एनिमेशन्स- मार्क ग्रान्ट द्वारा
About[hr]=Autor: Martin R. Jones\nAnimacije malznog paketa, zrake i vatre: Mark Grant
About[hu]=Készítette: Martin R. Jones\nA jet pack, a sugár és a tűz animációja Mark Grant munkája
About[is]=Eftir Martin R. Jones\nÞotuhreyfill, leysir og teikningar af skotum eftir Mark Grant
About[it]=Di Martin R. Jones.\nLe animazioni dello zaino-razzo, del fascio e del fuoco sono state realizzate da Mark Grant.
About[ja]=By Martin R. Jones\nジェットパック、ビーム、ファイアアニメーション by Mark Grant
About[km]=ដោយ Martin R. Jones\nJet pack, ចលនា​ភ្លើង និង​បាច់​ពន្លឺ​ដោយ Mark Grant
About[lt]=Darė Martin R. Jones\nJet pack, spindulių ir ugnies animacijos Mark Grant
About[lv]=Autors - Martin R. Jones\nAnimācija - Mark Grant
About[mk]=Од Мартин Р. Џонс\nАнимации со ракетен погон, зрак и оган од Марк Грант
About[mt]=Ta' Martin R. Jones\nUħud mill-animazzjonijiet ta' Mark Grant
About[nb]=Av Martin R. Jones\nJet-pakke, stråle og flamme-animasjoner av Mark Grant
About[nds]=Vun Martin R. Jones\nRaketendrift, Strahl un Füeranimatschonen vun Mark Grant
About[nl]=Door Martin R. Jones\nJet pack, beam en fire animaties door Mark Grant
About[nn]=Av Martin R. Jones\nJetmotor, stråle- og flammeanimasjon av Mark Grant
About[pl]=Autorstwa Martina Jonesa\nPromienie i animacje ognia autorstwa Marka Granta
About[pt]=De Martin R. Jones\nJactos e animações de raios e fogo de Mark Grant
About[pt_BR]=Por Martin R. Jones\nAnimações por Mark Grant
About[ro]=De Martin R. Jones\nAnimaţie motor rachetă, rază şi foc de Mark Grant
About[ru]=Автор - Martin R. Jones\nАнимация от Mark Grant
About[sk]=Vytvoril Martin R. Jones\nJet pack, laser a oheň vytvoril Mark Grant
About[sl]=Od Martina R. Jonesa\nAnimacije izdelal Mark Grant
About[sr]=Од Мартина Р. Џонса (Martin R. Jones)\nМлазни ранац, анимација зракова и ватре од Марка Гранта (Mark Grant)
About[sr@Latn]=Od Martina R. Džonsa (Martin R. Jones)\nMlazni ranac, animacija zrakova i vatre od Marka Granta (Mark Grant)
About[sv]=Av Martin R. Jones\nJetpack, stråle och eldanimeringar av Mark Grant
About[ta]=மார்டீன் ரா.ஜோன்ஸ்\nஜெட் பக், பீம் மற்றும் நெருப்பு அசைவூட்டம் மார்க் கிரன்ட்
About[tg]=Мартин Р.Ҷонес\nАниматсияҳо аз Марк Грант
About[th]=โดย Martin R. Jones\nJet pack, beam และสร้างการพ่นไฟโดย Mark Grant
About[tr]=Martin R. Jones\nMark Grant Jet pack, ışın ve ateş animasyonlarının sahibi.
About[uk]=Автор: Martin R. Jones\nСтрумінь, промені та оживлення вогню: Mark Grant
About[ven]=Nga Martin R. Jones\nJet pack, beam na zwa zwipuka zwamulilo nga Mark Grant
About[xh]=Ngu Martin R. Jones\nJet pack, umqadi nomlilo wophiliso ngu Mark Grant
About[zh_CN]=作者Martin R. Jones\nJet pack、光束和火焰动画作者为Mark Grant
Icon=../../preview/blob.png
Base=Base
Sequences=Blink,BounceLeft,BounceRight,Hair,Ears,Girl,ShuffleLeft,ShuffleRight,Glasses,RollLeft,RollRight,UpsideDown,FadeLeft,FadeRight,JetRight,JetLeft,Fire
Focus=ZoomIn,DropIn,FadeIn,BeamDown
Blur=ZoomOut,FadeOut,BeamUp
Destroy=DropOut
Sleep=Snooze
Wake=Blink
[Base]
Sequence=blob.png
Movement=0
Delay=4000
HotspotX=16
HotspotY=28
[ZoomIn]
Sequence=blob_z3.png,blob_z2.png,blob_z1.png
Movement=0,0,0
Delay=100,100,100
HotspotX=16,16,16
HotspotY=28,28,28
[ZoomOut]
Sequence=blob_z1.png,blob_z2.png,blob_z3.png
Movement=0,0,0
Delay=100,100,100
HotspotX=16,16,16
HotspotY=28,28,28
[DropIn]
Sequence=blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png
Movement=0,0,0,0,0
Delay=150,100,100,100,100
HotspotX=16,16,16,16,16
HotspotY=750,500,250,100,50
[DropOut]
Sequence=blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png
Movement=0,0,0,0,0,0,0,0
Delay=150,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16
HotspotY=0,-25,-50,-100,-250,-500,-750,-1000
[Snooze]
Sequence=blob_sl4.png,blob_sl1.png,blob_sl2.png,blob_sl3.png
Movement=0,0,0,0
Delay=1000,500,500,500
HotspotX=16,16,16,16
HotspotY=28,28,28,28
[Blink]
Sequence=blob_b1.png,blob_b2.png,blob_b1.png
Movement=0,0,0
Delay=100,100,100
HotspotX=16,16,16
HotspotY=28,28,28
[BounceLeft]
Sequence=blob_b1.png,blob.png,blob.png,blob.png,blob_b1.png
Movement=0,-8,-8,-8,-8
Delay=100,100,100,100,100
HotspotX=16,16,16,16,16
HotspotY=28,36,38,36,28
[BounceRight]
Sequence=blob_b1.png,blob.png,blob.png,blob.png,blob_b1.png
Movement=0,8,8,8,8
Delay=100,100,100,100,100
HotspotX=16,16,16,16,16
HotspotY=28,36,38,36,28
[Hair]
Sequence=blob_h1.png,blob_h2.png,blob_h3.png,blob_h2.png,blob_h1.png
Movement=0,0,0,0,0
Delay=200,200,2000,200,200
HotspotX=16,16,16,16,16
HotspotY=28,28,28,28,28
[Ears]
Sequence=blob_e1.png
Movement=0
Delay=3000
HotspotX=16
HotspotY=28
[Girl]
Sequence=blob_g1.png,blob_g2.png,blob_g1.png
Movement=0,0,0
Delay=800,200,800
HotspotX=16,16,16
HotspotY=28,28,28
[ShuffleLeft]
Sequence=blob_s1.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s1.png
Movement=0,-4,-4,-4,-4,-4,-4,-4,0
Delay=200,200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16
HotspotY=29,32,32,32,32,32,32,32,29
[ShuffleRight]
Sequence=blob_s1.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s1.png
Movement=0,4,4,4,4,4,4,4,0
Delay=200,200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16
HotspotY=29,32,32,32,32,32,32,32,29
[Glasses]
Sequence=blob_gl1.png,blob_gl2.png,blob_gl3.png,blob_gl2.png,blob_gl1.png
Movement=0,0,0,0,0
Delay=150,150,3000,150,150
HotspotX=16,16,16,16,16
HotspotY=28,28,28,28,28
[RollLeft]
Sequence=blob_r315.png,blob_r270.png,blob_r225.png,blob_r180.png,blob_r135.png,blob_r90.png,blob_r45.png,blob.png
Movement=-4,-4,-4,-4,-4,-4,-4,-4
Delay=100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16
HotspotY=28,28,28,28,28,28,28,28
[RollRight]
Sequence=blob_r45.png,blob_r90.png,blob_r135.png,blob_r180.png,blob_r225.png,blob_r270.png,blob_r315.png,blob.png
Movement=4,4,4,4,4,4,4,4
Delay=100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16
HotspotY=28,28,28,28,28,28,28,28
[UpsideDown]
Sequence=blob_r45.png,blob_r90.png,blob_r135.png,blob_r180.png,blob_r225.png,blob_r270.png,blob_r315.png,blob.png
Movement=0,0,0,0,0,0,0,0
Delay=100,100,100,3000,100,100,100,100
HotspotX=10,6,10,16,22,28,22,16
HotspotY=26,18,10,6,10,18,26,28
[FadeIn]
Sequence=blob_f3.png,blob_f2.png,blob_f1.png
Movement=0,0,0
Delay=100,100,100
HotspotX=16,16,16
HotspotY=28,28,28
[FadeOut]
Sequence=blob_f1.png,blob_f2.png,blob_f3.png
Movement=0,0,0
Delay=100,100,100
HotspotX=16,16,16
HotspotY=28,28,28
[FadeLeft]
Sequence=blob_f1.png,blob_f2.png,blob_f3.png,blob.png,blob_f3.png,blob_f2.png,blob_f1.png
Movement=0,0,0,-100,0,0,0
Delay=100,100,100,500,100,100,100
HotspotX=16,16,16,2000,16,16,16
HotspotY=28,28,28,28,28,28,28
[FadeRight]
Sequence=blob_f1.png,blob_f2.png,blob_f3.png,blob.png,blob_f3.png,blob_f2.png,blob_f1.png
Movement=0,0,0,100,0,0,0
Delay=100,100,100,500,100,100,100
HotspotX=16,16,16,2000,16,16,16
HotspotY=28,28,28,28,28,28,28
[Fire]
Sequence=blob_fire2.png,blob_fire3.png,blob_fire4.png,blob_fire5.png,blob_fire6.png,blob_fire5.png,blob_fire6.png,blob_fire5.png,blob_fire6.png,blob_fire5.png,blob_fire6.png,blob_fire7.png,blob_fire8.png,blob_fire9.png,blob_fire10.png,blob_fire11.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=600,400,300,200,200,200,200,200,200,200,200,200,200,200,200,3000
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,26,26
[JetRight]
Sequence=blob_r_turn1.png,blob_r_turn2.png,blob_r_turn3.png,blob_r_turn4.png,blob_jet1.png,blob_jet2.png,blob_jet3.png,blob_jet4.png,blob_jet3.png,blob_jet4.png,blob_jet3.png,blob_jet2.png,blob_r_turn4.png,blob_r_turn3.png,blob_r_turn2.png,blob_r_turn1.png
Movement=0,0,0,0,0,8,16,20,20,20,16,16,8,0,0,0
Delay=100,100,100,200,200,200,200,200,200,200,200,200,200,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=28,28,28,28,28,32,38,44,44,44,44,38,32,28,28,28,28
[JetLeft]
Sequence=blob_l_turn1.png,blob_l_turn2.png,blob_l_turn3.png,blob_l_turn4.png,blob_l_jet1.png,blob_l_jet2.png,blob_l_jet3.png,blob_l_jet4.png,blob_l_jet3.png,blob_l_jet4.png,blob_l_jet3.png,blob_l_jet2.png,blob_l_turn4.png,blob_l_turn3.png,blob_l_turn2.png,blob_l_turn1.png
Movement=0,0,0,0,0,-8,-16,-20,-20,-20,-16,-16,-8,0,0,0
Delay=100,100,100,200,200,200,200,200,200,200,200,200,200,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=28,28,28,28,28,32,38,44,44,44,44,38,32,28,28,28,28
[BeamDown]
Sequence=blob_BeamDown1.png,blob_BeamDown2.png,blob_BeamDown3.png,blob_BeamDown4.png,blob_BeamDown5.png,blob_BeamDown6.png,blob_BeamDown7.png,blob_BeamDown8.png,blob_BeamDown9.png
Movement=0,0,0,0,0,0,0,0,0
Delay=100,100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16
HotspotY=28,28,28,28,28,28,28,28,28
[BeamUp]
Sequence=blob_BeamUp1.png,blob_BeamUp2.png,blob_BeamUp3.png,blob_BeamUp4.png,blob_BeamUp5.png,blob_BeamUp6.png,blob_BeamUp7.png,blob_BeamUp8.png,blob_BeamUp9.png,blob_BeamUp10.png
Movement=0,0,0,0,0,0,0,0,0,0
Delay=100,100,100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16
HotspotY=28,28,28,28,28,28,28,28,28,28

@ -0,0 +1,193 @@
# KDE Config File
#
# This guy seems to be waiting or is bored or something.
# jead@iname.com
#
[Config]
PixmapPath=pics/animated/bonhomme
Description=Bonhomme
Description[be]=Пляшучыя чалавечкі
Description[bg]=Тао
Description[bn]=বনমি
Description[cs]=Mužíček
Description[et]=Kriipsu-Juku
Description[hi]=बॉनहॉम
Description[km]=មនុស្ស​ឆ្អឹង
Description[lv]=KauluVīrs
Description[ne]=बोन्होम
Description[pl]=Dobry człowiek
Description[ru]=Добрячок
Description[sr]=Костурко
Description[sr@Latn]=Kosturko
Description[ta]= பான்ஸாமி
Description[tg]=Бонхомме
Description[th]=มนุษย์ลายเส้น
Description[tr]=Yıldırım Adam
Description[uk]=Іграшковий чоловічок
Description[wa]=Boulome
Description[zh_CN]=Bonhomme线条人
About=By Jean-Claude Dumas
About[af]=Deur Jean-Claude Dumas
About[ar]=من جان كلود دوماس
About[az]=Jean-Claude Dumas tərəfindən
About[be]=Аўтар Jean-Claude Dumas
About[bg]=Автор Жан Клод Дюма
About[bn]=তৈরি করেছেন জাঁ-ক্ল ডুমাস
About[br]=Gant Jean-Claude Dumas
About[bs]=Autor: Jean-Claude Dumas
About[ca]=Per Jean-Claude Dumas
About[cs]=Autor Jean-Claude Dumas
About[cy]=Gan Jean-Claude Dumas
About[da]=Af Jean-Claude Dumas
About[de]=Von Jean-Claude Dumas
About[el]=Από τον Jean-Claude Dumas
About[eo]=De Jean-Claude Dumas
About[es]=Por Jean-Claude Dumas
About[et]=Autor: Jean-Claude Dumas
About[eu]=Jean-Claude Dumasek Egina
About[fa]=توسط جین کلود داموس
About[fi]=Tehnyt Jean-Claude Dumas
About[fo]=Av Jean-Claude Dumas
About[fr]=Par Jean-Claude Dumas
About[ga]=Le Jean-Claude Dumas
About[gl]=Por Jean-Claude Dumas
About[he]=מאת ז'אן-קלוד דומא
About[hi]=जीन-क्लाउड डूमा द्वारा
About[hr]=Autor: Jean-Claude Dumas
About[hu]=Készítette: Jean-Claude Dumas
About[is]=Eftir Jean-Claude Dumas
About[it]=Di Jean-Claude Dumas
About[km]=ដោយ Jean-Claude Dumas
About[lt]=Darė Jean-Claude Dumas
About[lv]=Autors - Jean-Claude Dumas
About[mk]=Од Жан Клод Дима
About[mt]=Ta' Jean-Claude Dumas
About[nb]=Av Jean-Claude Dumas
About[nds]=Vun Jean-Claude Dumas
About[ne]=जिन-क्लाउड डुमासद्वारा
About[nl]=Door Jean-Claude Dumas
About[nn]=Av Jean-Claude Dumas
About[pl]=Autorstwa Jean-Claude'a Dumasa
About[pt]=De Jean-Claude Dumas
About[pt_BR]=Por Jean-Claude Dumas
About[ro]=De Jean-Claude Dumas
About[ru]=Автор - Jean-Claude Dumas
About[sk]=Vytvoril Jean-Claude Dumas
About[sl]=Od Jean-Claudea Dumasa
About[sr]=Од Жана-Клода Диме (Jean-Claude Dumas)
About[sr@Latn]=Od Žana-Kloda Dime (Jean-Claude Dumas)
About[sv]=Av Jean-Claude Dumas
About[tg]=Ҷан-Клауде Думас
About[th]=โดย Jean-Claude Dumas
About[tr]=Jean-Claude Dumas
About[uk]=Автор: Jean-Claude Dumas
About[uz]=Jean-Klaude Dumas (Jean-Claude Dumas) yaratgan
About[uz@cyrillic]=Жеан-Клауде Думас (Jean-Claude Dumas) яратган
About[ven]=Nga Jean-Claude Dumas
About[wa]=Sicrît pa Jean-Claude Dumas
About[xh]=Ngu Jean-Claude Dumas
About[zh_CN]=作者Jean-Claude Dumas
Icon=../../preview/bonhomme.png
Base=Base
Sequences=WalkRight,WalkLeft,Pof,Drib,Col,ColRight,ColLeft,Hop,Sa,Hi
Focus=Go,Col
Blur=UnGo,Col
Destroy=DropOut
[Base]
Sequence=b-f.png,b-f2.png,b-f.png,b-f2.png,b-f.png,b-f2.png,b-f.png,b-f1.png,b-f.png,b-f2.png,b-f.png,b-f2.png,b-f.png,b-f2.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=300,300,300,300,300,300,300,300,300,300,300,300,300,300
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30
[Go]
Sequence=bgo7.png,bgo6.png,bgo5.png,bgo4.png,bgo3.png,bgo2.png,bgo1.png,b-f.png
Movement=0,0,0,0,0,0,0,0
Delay=200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30
[UnGo]
Sequence=b-f.png,bgo1.png,bgo2.png,bgo3.png,bgo4.png,bgo5.png,bgo6.png,bgo7.png,
Movement=0,0,0,0,0,0,0,0
Delay=150,150,150,150,150,150,150,150
HotspotX=16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30
[Pof]
Sequence=bpof1.png,bpof1.png,bpof1.png,bpof2.png,bpof3.png,bpof4.png,bpof5.png,bpof6.png,bpof6.png,bpof1.png,bpof1.png,bpof1.png,bpof2.png,bpof3.png,bpof4.png,bpof5.png,bpof6.png,bpof6.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
[Drib]
Sequence=bdrib1.png,bdrib2.png,bdrib3.png,bdrib4.png,bdrib5.png,bdrib6.png,bdrib7.png,bdrib6.png,bdrib5.png,bdrib4.png,bdrib3.png,bdrib4.png,bdrib5.png,bdrib6.png,bdrib7.png,bdrib6.png,bdrib5.png,bdrib4.png,bdrib3.png,bdrib4.png,bdrib5.png,bdrib6.png,bdrib7.png,bdrib6.png,bdrib5.png,bdrib4.png,bdrib3.png,bdrib2.png,bdrib1
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=300,300,100,100,100,100,50,100,100,100,100,100,100,100,100,50,100,100,100,100,100,100,100,100,50,100,100,300,300
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
[WalkLeft]
Sequence=b4-r.png,b3-r.png,b2-r.png,b1-r.png,b2-r.png,b3-r.png,b4-r.png,b3-r.png,b2-r.png,b1-r.png,b2-r.png,b3-r.png,b4-r.png,b3-r.png,b2-r.png,b1-r.png,b2-r.png,b3-r.png,b4-r.png
Movement=-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4
Delay=200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
[WalkRight]
Sequence=b4.png,b3.png,b2.png,b1.png,b2.png,b3.png,b4.png,b3.png,b2.png,b1.png,b2.png,b3.png,b4.png,b3.png,b2.png,b1.png,b2.png,b3.png,b4.png
Movement=4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Delay=200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
[DropOut]
Sequence=bdrop.png,bdrop.png,bdrop.png,bdrop.png,bdrop.png,bdrop.png,bdrop.png,bdrop.png
Movement=0,0,0,0,0,0,0,0
Delay=150,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16
HotspotY=0,-25,-50,-100,-250,-500,-750,-1000
[Col]
Sequence=bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
[ColLeft]
Sequence=bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png
Movement=0,0,0,0,0,0,0,0,-150,0,0,0,0,0,0,0
Delay=50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
[ColRight]
Sequence=bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png
Movement=0,0,0,0,0,0,0,0,-150,0,0,0,0,0,0,0
Delay=50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
[Hop]
Sequence=b-f.png,bh1.png,bdrop.png,bh1.png,b-f.png,bh1.png,bdrop.png,bh1.png,b-f.png,bh1.png,bdrop.png,bh1.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0
Delay=150,150,150,150,150,150,150,150,150,150,150,150
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,40,60,40,30,40,60,40,30,40,60,40
[Sa]
Sequence=sa1.png,sa2.png,sa2a.png,sa2b.png,sa2c.png,sa2a.png,sa2b.png,sa2c.png,sa2a.png,sa2b.png,sa2c.png,sa2.png,sa1.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=300,300,200,200,200,200,200,200,200,200,200,300,300
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30
[Hi]
Sequence=salut.png,salut1.png
Movement=0,0
Delay=4000,300
HotspotX=16,16
HotspotY=30,30

@ -0,0 +1,128 @@
# KDE Config File
[Config]
PixmapPath=pics/static
Static=true
Description=FreeBSD Mascot
Description[af]=Freebsd Gelukbringer
Description[az]=FreeBSD Gəlinciyi
Description[be]=Сімвал FreeBSD
Description[bg]=Талисман на FreeBSD
Description[bn]=FreeBSD মাস্কট
Description[bs]=FreeBSD maskota
Description[ca]=Mascota de FreeBSD
Description[cs]=Maskot FreeBSD
Description[cy]=Masgot FreeBSD
Description[da]=FreeBSD-maskot
Description[de]=FreeBSD-Maskottchen
Description[el]=Η μασκότ του FreeBSD
Description[eo]=Simbolbesto de FreeBSD
Description[es]=Mascota de FreeBSD
Description[et]=FreeBSD maskott
Description[eu]=FreeBSD Maskota
Description[fa]=مایۀ خوش‌شانسی FreeBSD
Description[fi]=FreeBSD-maskotti
Description[fr]=Mascotte de FreeBSD
Description[ga]=Sonóg FreeBSD
Description[gl]=A mascota de FreeBSD
Description[he]=הקמיע של BSD
Description[hi]=फ्री-बीएसडी शुभंकर
Description[hr]=FreeBSD maskota
Description[hu]=FreeBSD kabala
Description[is]=BSD lukkudýrið
Description[it]=Mascotte di FreeeBSD
Description[ja]=FreeBSD マスコット
Description[km]=សុភមង្គល​វត្ថុ FreeBSD
Description[ko]=FreeBSD 마스코트
Description[lt]=FreeBSD talismanas
Description[lv]=FreeBSD talismans
Description[mk]=Маскотата на FreeBSD
Description[ms]= Maskot FreeBSD
Description[nb]=FreeBSD-maskott
Description[nds]=FreeBSD-Maskottje
Description[ne]=स्वतन्त्र बीएसडी मासकोट
Description[nl]=FreeBSD-mascotte
Description[nn]=FreeBSD-maskot
Description[pl]=Maskotka FreeBSD
Description[pt]=Mascote do FreeBSD
Description[pt_BR]=Mascote do FreeBSD
Description[ro]=Mascota FreeBSD
Description[ru]=Чёртик FreeBSD
Description[sk]=Maskot FreeBSD
Description[sl]=Maskota FreeBSD
Description[sr]=Маскота FreeBSD-а
Description[sr@Latn]=Maskota FreeBSD-a
Description[sv]=FreeBSD-maskot
Description[ta]= இலவசம் BSD Mascot
Description[tg]=Аджари FreeBSD
Description[th]=สัญลักษณ์ของ FreeBSD
Description[tr]=FreeBSD Maskotu
Description[uk]=Талісман FreeBSD
Description[uz]=FreeBSD tumori
Description[uz@cyrillic]=FreeBSD тумори
Description[ven]=Mascot ya BSD dza mahala
Description[wa]=Mascote FreeBSD
Description[zh_CN]=FreeBSD 吉祥物
About=Static window sitter
About[af]=Statiese venster sitter
About[ar]=قاعد النوافذ الساكنة
About[az]=Statik pəncərə mürəbbiyəsi
About[be]=Статычны наглядчык вокнаў
About[bg]=Неанимирано дяволче
About[bn]=উইন্ডোর এক স্থানে স্থির হয়ে বসে থাকে
About[bs]=Statički window sitter
About[ca]=Model estàtic de finestra
About[cs]=Statická ozdoba okna
About[cy]=Gwarchodydd ffenest sefydlog
About[da]=Statisk vinduessitter
About[de]=Statischer Fenstersitzer
About[el]=Στατικό εικονίδιο
About[eo]=Moviĝema fenestrosidulo
About[es]=Cuidador estático de ventanas
About[et]=Liikumatu aknahoidja
About[eu]=Lehio modelo egonkorra
About[fa]=مدل پنجرۀ ایستا
About[fi]=Staattinen ikkunallaistuja
About[fr]=Surveillant statique de fenêtres
About[ga]=Peata statach fuinneoige
About[gl]=Vixiante estático de fiestras
About[he]=שומר חלון סטטי
About[hi]=स्थिर विंडो सिटर
About[hr]=Statički sjedač na prozoru
About[hu]=Nem animált ablakdíszítés
About[is]=Situr og passar glugga
About[it]=Immagine statica
About[ja]=動かないウィンドウ監視人
About[km]=អ្នក​ថែទាំ​បង្អួចឋិតិវន្ត
About[lt]=Nejudantis sėdėtojas ant lango
About[lv]=Statisks uz loga sēdētājs
About[mk]=Статичен седач врз прозорци
About[mt]=Stampa statika
About[nb]=Statisk vindusitter
About[nds]=Fast Finstersitter
About[ne]=स्थिर सञ्झ्याल सिटर
About[nl]=Statische vensterzitter
About[nn]=Statisk vindaugssitjar
About[pl]=Stale w tym samym miejscu
About[pt]=Elemento estático pousado sobre as janelas
About[pt_BR]=Janela Estática
About[ro]=Imagine statică
About[ru]=Статичный сторож окон
About[sk]=Statická ozdoba okna
About[sl]=Statično okno
About[sr]=Статични седач на прозору
About[sr@Latn]=Statični sedač na prozoru
About[sv]=Statisk fönstervakt
About[ta]= நிலையான சாளரம் அமர்தல்
About[tg]=Нигаҳбонии статикии тиреза
About[th]=นั่งเล่นบนหน้าต่าง
About[tr]=Statik pencere bakıcı
About[uk]=Статична прикраса для вікна
About[ven]=Tshidzuli tsha window yo imaho
About[zh_CN]=窗口静坐者
Icon=../preview/bsd.png
[Base]
Sequence=bsd.png
HotspotX=25
HotspotY=54

@ -0,0 +1,232 @@
# KDE Config File
#
# This by jead@iname.com. Do whatever you want with it. C'est ca qui est ca. :)
[Config]
PixmapPath=pics/animated/eyes
Description=Crazy Eyes
Description[af]=Mal Oë
Description[ar]=عيون مجنونة
Description[be]=Вочы
Description[bg]=Луди очички
Description[bn]=পাগলা চোখ
Description[br]=Daoulagad foll
Description[bs]=Lude oči
Description[ca]=Ulls bojos
Description[cs]=Voči šílený
Description[cy]=Llygaid Gwirion
Description[de]=Verrückte Augen
Description[el]=Τρελά μάτια
Description[eo]=Frenezaj okuloj
Description[es]=Ojos locos
Description[et]=Hullud silmad
Description[eu]=Begi Zoroak
Description[fa]=چشمهای احمق
Description[fi]=Hullut silmät
Description[fr]=Yeux fous
Description[ga]=Súile Craiceáilte
Description[gl]=Ollos Tolos
Description[he]=עיניים מוטרפות
Description[hi]=नटखट नयन
Description[hr]=Divlje oči
Description[hu]=Izzó szemek
Description[is]=Geðveik augu (Crazy Eyes)
Description[it]=Occhi pazzi
Description[ja]=クレイジーアイ
Description[km]=ភ្នែក​ឆ្កួតៗ
Description[ko]=미친 눈
Description[lt]=Beprotiškos akys
Description[lv]=Trakās acis
Description[mk]=Забегани очи
Description[nb]=Ville øyne
Description[nds]=Mall Ogen
Description[ne]=एकोहोरा आँखा
Description[nl]=Gekke ogen
Description[nn]=Ville auge
Description[pa]=ਭੈੜੀਆਂ ਅੱਖਾਂ
Description[pl]=Szalone oczy
Description[pt]=Olhos Loucos
Description[pt_BR]=Olhos Malucos
Description[ro]=Ochişori nebunatici
Description[ru]=Безумные глаза
Description[sk]=Šialené oči
Description[sl]=Nore oči
Description[sr]=Блесаве очи
Description[sr@Latn]=Blesave oči
Description[sv]=Galna ögon
Description[ta]= நகைச்சுவை கண்கள்
Description[tg]=Нигоҳҳои Ҷиннибашара
Description[th]=ดวงตาแสนโง่
Description[tr]=Çılgın Gözler
Description[uk]=Шалені очі
Description[uz]=Jinninamo koʻzlar
Description[uz@cyrillic]=Жиннинамо кўзлар
Description[ven]=Mato a tshipengo
Description[zh_CN]=疯狂双眼
Description[zh_TW]=瘋狂的眼睛
About=By Jean-Claude Dumas
About[af]=Deur Jean-Claude Dumas
About[ar]=من جان كلود دوماس
About[az]=Jean-Claude Dumas tərəfindən
About[be]=Аўтар Jean-Claude Dumas
About[bg]=Автор Жан Клод Дюма
About[bn]=তৈরি করেছেন জাঁ-ক্ল ডুমাস
About[br]=Gant Jean-Claude Dumas
About[bs]=Autor: Jean-Claude Dumas
About[ca]=Per Jean-Claude Dumas
About[cs]=Autor Jean-Claude Dumas
About[cy]=Gan Jean-Claude Dumas
About[da]=Af Jean-Claude Dumas
About[de]=Von Jean-Claude Dumas
About[el]=Από τον Jean-Claude Dumas
About[eo]=De Jean-Claude Dumas
About[es]=Por Jean-Claude Dumas
About[et]=Autor: Jean-Claude Dumas
About[eu]=Jean-Claude Dumasek Egina
About[fa]=توسط جین کلود داموس
About[fi]=Tehnyt Jean-Claude Dumas
About[fo]=Av Jean-Claude Dumas
About[fr]=Par Jean-Claude Dumas
About[ga]=Le Jean-Claude Dumas
About[gl]=Por Jean-Claude Dumas
About[he]=מאת ז'אן-קלוד דומא
About[hi]=जीन-क्लाउड डूमा द्वारा
About[hr]=Autor: Jean-Claude Dumas
About[hu]=Készítette: Jean-Claude Dumas
About[is]=Eftir Jean-Claude Dumas
About[it]=Di Jean-Claude Dumas
About[km]=ដោយ Jean-Claude Dumas
About[lt]=Darė Jean-Claude Dumas
About[lv]=Autors - Jean-Claude Dumas
About[mk]=Од Жан Клод Дима
About[mt]=Ta' Jean-Claude Dumas
About[nb]=Av Jean-Claude Dumas
About[nds]=Vun Jean-Claude Dumas
About[ne]=जिन-क्लाउड डुमासद्वारा
About[nl]=Door Jean-Claude Dumas
About[nn]=Av Jean-Claude Dumas
About[pl]=Autorstwa Jean-Claude'a Dumasa
About[pt]=De Jean-Claude Dumas
About[pt_BR]=Por Jean-Claude Dumas
About[ro]=De Jean-Claude Dumas
About[ru]=Автор - Jean-Claude Dumas
About[sk]=Vytvoril Jean-Claude Dumas
About[sl]=Od Jean-Claudea Dumasa
About[sr]=Од Жана-Клода Диме (Jean-Claude Dumas)
About[sr@Latn]=Od Žana-Kloda Dime (Jean-Claude Dumas)
About[sv]=Av Jean-Claude Dumas
About[tg]=Ҷан-Клауде Думас
About[th]=โดย Jean-Claude Dumas
About[tr]=Jean-Claude Dumas
About[uk]=Автор: Jean-Claude Dumas
About[uz]=Jean-Klaude Dumas (Jean-Claude Dumas) yaratgan
About[uz@cyrillic]=Жеан-Клауде Думас (Jean-Claude Dumas) яратган
About[ven]=Nga Jean-Claude Dumas
About[wa]=Sicrît pa Jean-Claude Dumas
About[xh]=Ngu Jean-Claude Dumas
About[zh_CN]=作者Jean-Claude Dumas
Icon=../../preview/eyes.png
Sequences=Base,GlideLeft,GlideRight,EyesLeft,EyesRight,Blink,Sourcils,Hyp
Focus=Rotr,UnMelt
Blur=Rotl,Melt
Destroy=Flyaway
Sleep=Sleep
Wake=Blink
[Base]
Sequence=eye_2.png,eye_1.png
Movement=0,0
Delay=300,5000
HotspotX=16,16
HotspotY=30,30
[Blink]
Sequence=eye_b.png,eye_1.png
Movement=0,0
Delay=300,3000
HotspotX=16,16
HotspotY=30,30
[Sleep]
Sequence=eye_2.png
Movement=0
Delay=200
HotspotX=16
HotspotY=30
[Sourcils]
Sequence=eye_1.png,eye_s1.png,eye_s2.png,eye_s3.png,eye_s4.png,eye_s3.png,eye_s4.png,eye_s3.png,eye_s2.png,eye_s1.png
Movement=0,0,0,0,0,0,0,0,0,0
Delay=200,200,200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30
[Hyp]
Sequence=eye_1.png,eye_h1.png,eye_h2.png,eye_h3.png,eye_h4.png,eye_h3.png,eye_h4.png,eye_h3.png,eye_h4.png,eye_h3.png,eye_h2.png,eye_h1.png,eye_1.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=200,200,200,200,100,100,100,100,100,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30
[Rotr]
Sequence=eye_z1.png,eye_z2.png,eye_z3.png,eye_z4.png,eye_z5.png,eye_2.png
Movement=0,0,0,0,0,0
Delay=100,100,100,100,100,100
HotspotX=16,16,16,16,16,16
HotspotY=30,30,30,30,30,30
[Rotl]
Sequence=eye_1.png,eye_z5.png,eye_z4.png,eye_z3.png,eye_z2.png,eye_z1.png
Movement=0,0,0,0,0,0
Delay=100,100,100,100,100,100
HotspotX=16,16,16,16,16,16
HotspotY=30,30,30,30,30,30
[Melt]
Sequence=eye_m1.png,eye_m2.png,eye_m3.png,eye_m4.png,eye_m5.png,eye_m6.png,eye_m7.png
Movement=0,0,0,0,0,0,0
Delay=100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30
[UnMelt]
Sequence=eye_m7.png,eye_m6.png,eye_m5.png,eye_m4.png,eye_m3.png,eye_m2.png,eye_m1.png
Movement=0,0,0,0,0,0,0
Delay=100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30
[EyesRight]
Sequence=eye_1.png,eye_d.png,eye_d.png,eye_e.png,eye_e.png,eye_e.png,eye_e.png,eye_e.png,eye_u.png,eye_u.png,eye_1.png
Movement=0,0,0,0,12,12,12,12,0,0,0
Delay=100,100,100,300,100,100,100,300,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16
HotspotY=25,17,9,3,3,3,3,3,9,17,25
[EyesLeft]
Sequence=eye_1.png,eye_d.png,eye_d.png,eye_l.png,eye_l.png,eye_l.png,eye_l.png,eye_l.png,eye_u.png,eye_u.png,eye_1.png
Movement=0,0,0,0,-12,-12,-12,-12,0,0,0
Delay=100,100,100,300,100,100,100,300,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16
HotspotY=25,17,9,3,3,3,3,3,9,17,25
[GlideLeft]
Sequence=eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png
Movement=-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4
Delay=300,300,300,300,300,300,300,300,300,300,300,300
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=30,31,30,31,30,31,30,31,30,31,30,31
[GlideRight]
Sequence=eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png
Movement=4,4,4,4,4,4,4,4,4,4,4,4
Delay=300,300,300,300,300,300,300,300,300,300,300,300
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=31,30,31,30,31,30,31,30,31,30,31,30
[Flyaway]
Sequence=eye_m1.png,eye_m2.png,eye_m3.png,eye_m4.png,eye_m5.png,eye_m6.png,eye_m.png7,eye_m7.png
Movement=0,0,0,0,0,0,0,0
Delay=150,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16
HotspotY=0,25,50,100,250,500,750,1000

@ -0,0 +1,183 @@
# KDE Config File
[Config]
PixmapPath=pics/animated/ghost
Description=Spooky Ghost
Description[af]=Onheilspellende Spook
Description[be]=Страшны прывід
Description[bg]=Призрачен Дух
Description[bn]=ভূতুড়ে ভূত
Description[br]=Tasmant
Description[bs]=Strašni duh
Description[ca]=Fantasma misteriós
Description[cs]=Strašidelný duch
Description[cy]=Bwgan Arwsydus
Description[de]=Kleines Gespenst
Description[el]=Στοιχειωμένο φάντασμα
Description[eo]=Hantema spirito
Description[es]=Fantasma misterioso
Description[et]=Jube tont
Description[eu]=Mamu Izugarria
Description[fa]=روح شبح‌وار
Description[fi]=Pelottava aave
Description[fr]=Fantôme
Description[ga]=Taibhse
Description[gl]=Horripilante Pantasma
Description[he]=רוח רפאים
Description[hi]=नन्हा प्रेत
Description[hr]=Jezivi duh
Description[hu]=Kísértet
Description[is]=Voðaleg vofa
Description[it]=Fantasma spettrale
Description[ja]=ゆうれい
Description[km]=ខ្មោច​ដែល​គួរ​ឲ្យ​ព្រឺ​ក្បាល
Description[ko]=귀신
Description[lt]=Kraupus vaiduoklis
Description[lv]=Spokainais spoks
Description[mk]=Откачен дух
Description[nb]=Skummelt spøkelse
Description[nds]=Lütt Spöker
Description[ne]=स्पोकी घोस्ट
Description[nl]=Het spookje
Description[nn]=Skremmande skrømt
Description[pl]=Duszek
Description[pt]=Fantasma Assustador
Description[pt_BR]=Ghost
Description[ro]=Fantomă înfiorătoare
Description[ru]=Призрак
Description[sk]=Strašidelný duch
Description[sl]=Strašljivi duh
Description[sr]=Сабласни дух
Description[sr@Latn]=Sablasni duh
Description[sv]=Skrämmande spöke
Description[ta]= பயமுறுத்தும் பேய்
Description[tg]=Хаёлот
Description[th]=ผีน้อยสปุ๊คกี้
Description[tr]=Şirin Hayalet
Description[uk]=Невловимий привид
Description[uz]=Arvoh Spuki
Description[uz@cyrillic]=Арвоҳ Спуки
Description[ven]=Tshipuku
Description[zh_CN]=蒙面幽灵
About=By Martin R. Jones\nBased on an icon by the KDE artist team.
About[af]=Deur Martin R. Jones\nBased op 'n ikoon Deur die Kde kunstenaar span.
About[ar]=من مارتن ر. جونز\nمبنية على أيقونة من فريق رسامي KDE
About[az]=Martin R. Jones tərəfindən\nBased on an icon by the KDE artist team.
About[be]=Аўтар Martin R. Jones\nЗроблена на базе значак ад каманды художнікаў KDE.
About[bg]=Автор Мартин Р. Джоунс\nБазирано на икона от KDE
About[bn]=তৈরি করেছেন মার্টিন আর. জোন্স\nকে.ডি.ই. শিল্পী দলের বানানো একটি আইকনের ওপর ভিত্তি করে।
About[br]=Gant Martin R. Jones\nDiazezet war un arlun skipail arzour KDE.
About[bs]=Autor Martin R. Jones\nBazirano na ikoni koju je napravio KDE tim umjetnika.
About[ca]=Per Martin R. Jones\nBasat en una icona del equip artístic de KDE.
About[cs]=Autor Martin R. Jones\nNa základě ikony z KDE
About[cy]=Gan Martin R. Jones\nSeiliedig ar eicon gan y tîm arlunio KDE.
About[da]=Af Martin R. Jones\nBaseret på en ikon af KDE's kunstnerhold.
About[de]=Von Martin R. Jones\nNach einem Symbol des KDE-Artist-Teams
About[el]=Από τον Martin R. Jones\n Βασισμένο σε ένα εικονίδιο της καλλιτεχνικής ομάδας του KDE.
About[eo]=De Martin R. Jones\nbazita sur piktogramo de la KDE-artistaro.
About[es]=Por Martin R. Jones\nBasado en un ícono proveniente del equipo de artistas de KDE.
About[et]=Autor: Martin R. Jones\nAluseks KDE kunstnike loodud ikoon.
About[eu]=Martin R. Jonesek Eginak\nKDE artista taldeak egindako ikono batetan oinarritua.
About[fa]=توسط مارتین آر.جونز \nبر اساس یک شمایل توسط تیم هنرمندان KDE
About[fi]=Tehnyt Martin R. Jones\nPerustuu KDE-taiteilijaryhmän kuvakkeeseen.
About[fr]=Par Martin R. Jones\nBasé sur une icône de l'équipe artistique de KDE.
About[ga]=Le Martin R. Jones\nBunaithe ar dheilbhín ó fhoireann ealaíontóirí KDE.
About[gl]=Por Martin R. Jones\nBaseado nun ícone do equipo artístico de KDE.
About[he]=מאת מרטין ר. ג'ונס\nמבוסס על סמל מאת צוות האמנים של KDE.
About[hi]=मार्टिन आर. जोन्स द्वारा\nकेडीई कलाकारों की टोली द्वारा बनाए एक प्रतीक के आधार पर
About[hr]=Autor: Martin R. Jones\nZasnovano na ikoni KDE tima.
About[hu]=Készítette: Martin R. Jones\nA KDE grafikus csapatának egy ikonján alapul.
About[is]=By Martin R. Jones\nByggt á táknmynd eftir KDE listamannahópinn
About[it]=Di Martin R. Jones.\nBasato su un'icona della squadra di artisti di KDE.
About[ja]=By Martin R. Jones\nアイコン by KDE アーティストチーム
About[km]=ដោយ Martin R. Jones\nផ្អែកលើរូបតំណាងរចនាដោយក្រុមវិចិត្រករ KDE 
About[lt]=Darė Martin R. Jones\nPagal KDE menininkų komandos piktogramą.
About[lv]=Autors - Martin R. Jones\nBāzēts uz KDE ikonas.
About[mk]=Од Мартин Р. Џонс\nБазирано врз икона од уметничкиот тим на KDE.
About[mt]=Ta' Martin R. Jones\nIbbażat fuq ġabra ta' ikoni tal-grupp ta' artisti KDE.
About[nb]=Av Martin R. Jones\nBasert på et ikon fra kunstnerlaget til KDE.
About[nds]=Vun Martin R. Jones\nBuut op'n Lüttbild vun den KDE-Krink.
About[ne]= मार्टिन आर.जोन्सद्वारा\n केडीई कलाकार समूहद्वारा एउटा प्रतिमामा आधारित
About[nl]=Door Martin R. Jones\nGebaseerd op een pictogram van het KDE Artist Team.
About[nn]=Av Martin R. Jones\nBasert på eit ikon frå kunstnarlaget til KDE.
About[pl]=Autorstwa Martina R. Jonesa\nNa podstawie ikony zespołu artystów KDE.
About[pt]=De Martin R. Jones\nBaseado num ícone da equipa artística do KDE.
About[pt_BR]=Por Martin R. Jones\nBaseado no ícone feito pelo time de designers do KDE.
About[ro]=De Martin R. Jones\nBazat pe o iconiţă a echipei artiştilor KDE.
About[ru]=Автор - Martin R. Jones\nНа основе пиктограммы команды художников KDE.
About[sk]=Vytvoril Martin R. Jones\nZaložené na ikone od KDE artist tímu.
About[sl]=Od Martina R. Jonesa\nTemelji na ikoni ekipe umetnikov KDE.
About[sr]=Од Мартина Р. Џонса (Martin R. Jones)\nЗасновано на иконици коју је направио уметнички тим KDE-а.
About[sr@Latn]=Od Martina R. Džonsa (Martin R. Jones)\nZasnovano na ikonici koju je napravio umetnički tim KDE-a.
About[sv]=Av Martin R. Jones\nBaserad på en ikon av KDE:s artistgrupp
About[ta]= மார்டீன் ரா.ஜோன்ஸ் \nKDE கலைஞர் குழு சின்னத்திற்கு ஏற்றவாறு.
About[tg]=Мартин Р.Ҷонес\nТасвирҳо аз командаи бадеи KDE.
About[th]=โดย Martin R. Jones\nโดยใช้พื้นฐานจากไอคอนของกลุ่มศิลปิน KDE
About[tr]=Martin R. Jones\nKDE sanatçı ekibinin bir simgesine dayanır.
About[uk]=Автор: Martin R. Jones\nЗроблено з піктограми від команди мистецтв KDE.
About[uz]=Martin R. Jouns (Martin R. Jones) yaratgan\nKDE tasvirchilar jamoasi yaratgan nishonchada asoslangan.
About[uz@cyrillic]=Мартин Р. Жоунс (Martin R. Jones) яратган\nKDE тасвирчилар жамоаси яратган нишончада асосланган.
About[ven]=Nga Martin R. Jones\nZwo di sendeka nga aikhonu nga tshigwada tsha vhamvumvusi vha KDE.
About[xh]= Martin R. Jones\nYamelene kwiqhosa leqela labazobi be KDE.
About[zh_CN]=作者Martin R. Jones\n基于 KDE 艺术组制作的一个图标。
Icon=../../preview/ghost.png
Sequences=Base,GlideLeft,GlideRight,EyesLeft,EyesRight
Focus=ZoomIn
Blur=ZoomOut,Melt
Destroy=ZoomOut
[Base]
Sequence=ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png
Movement=0,0,0,0,0,0,0,0,0,0
Delay=300,300,300,300,300,300,300,300,300,300
HotspotX=16,16,16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30,30,30
[ZoomIn]
Sequence=ghost_z1.png,ghost_z2.png,ghost_z3.png,ghost_z4.png,ghost_z5.png,ghost_2.png
Movement=0,0,0,0,0,0
Delay=100,100,100,100,100,100
HotspotX=16,16,16,16,16,16
HotspotY=30,30,30,30,30,30
[ZoomOut]
Sequence=ghost_1.png,ghost_z5.png,ghost_z4.png,ghost_z3.png,ghost_z2.png,ghost_z1.png
Movement=0,0,0,0,0,0
Delay=100,100,100,100,100,100
HotspotX=16,16,16,16,16,16
HotspotY=30,30,30,30,30,30
[Melt]
Sequence=ghost_m1.png,ghost_m2.png,ghost_m3.png,ghost_m4.png,ghost_m5.png,ghost_m6.png,ghost_m7.png,ghost_d3.png
Movement=0,0,0,0,0,0,0,0
Delay=100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16
HotspotY=30,30,30,30,30,30,30,30
[EyesRight]
Sequence=ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png
Movement=0,0,0,0,12,12,12,12,0,0,0
Delay=100,100,100,300,100,100,100,300,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16
HotspotY=25,20,15,10,10,10,10,10,15,20,25
[EyesLeft]
Sequence=ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png
Movement=0,0,0,0,-12,-12,-12,-12,0,0,0
Delay=100,100,100,300,100,100,100,300,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16
HotspotY=25,20,15,10,10,10,10,10,15,20,25
[GlideLeft]
Sequence=ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png
Movement=-4,-4,-4,-4,-4,-4
Delay=300,300,300,300,300,300
HotspotX=16,16,16,16,16,16
HotspotY=30,31,30,31,30,31
[GlideRight]
Sequence=ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png
Movement=4,4,4,4,4,4
Delay=300,300,300,300,300,300
HotspotX=16,16,16,16,16,16
HotspotY=30,31,30,31,30,31

@ -0,0 +1,202 @@
# KDE Config File
# An AMOR version of Oneko (a cat who follows your pointer around)
# Chris Spiegel (matrix@xirtam.org)
[Config]
PixmapPath=pics/animated/neko
Description=Neko
Description[bg]=Неко
Description[bn]=নেকো
Description[et]=Hiirepüüdja
Description[hi]=नेको
Description[km]=នេកូ
Description[ne]=नेको
Description[ru]=Неко
Description[ta]= Neko
Description[tg]=Пишак
Description[th]=เน็คโก้
Description[tr]=Mırnav
Description[uz@cyrillic]=Неко
Description[zh_CN]=Neko小猫咪
About=Artwork from oneko by Masayuki Koba\nAMOR'd by Chris Spiegel
About[af]=Kunswerk van oneko deur Masayuki Koba\Namor'd deur Chris Spiegel
About[ar]=عمل فني من أونيكو و من تصميم ماياسوكي كوبا\n نقلت الى Amor عن طريق كريس شبيغل
About[az]=Masayuki Kobanın sənət abidəsi\nAMOR'd by Chris Spiegel
About[be]=Малюнкі з oneko (аўтар Masayuki Koba)\n перанос ў AMOR - Chris Spiegel
About[bg]=Автор Масияки Коба\nАдаптация от Крис Шпигел
About[bn]=শিল্পকর্ম নেওয়া হয়েছে মাসায়ুকি কোবা'র তৈরি ওনেকো থেকে\nআমর-এর জন্য প্রস্তুত করেছেন ক্রিস স্পাইজেল
About[bs]=Artwork iz oneko-a koji je napravio Masayuki Koba\nAMORovao Chris Spiegel
About[ca]=Treball gràfic de oneko per Masayuki Koba\nAMOR per Chris Spiegel
About[cs]=Grafika z programu oneko, Masayuki Koba\nPřevod: Chris Spiegel
About[cy]=Gwaith arlunio oddiwrth oneko gan Masayuki Koba\nWedi ei AMORio gan Chris Spiegel
About[da]=Billedmateriale fra oneko af Masayuki Koba\nAMOR'et af Chris Spiegel
About[de]=Zeichnungen der Katze (oneko) von Masayuki Koba\nAuf AMOR portiert von Chris Spiegel
About[el]=Καλλιτεχνική εργασία από το oneko από τον Masayuki Koba\n Προσαρμογή στο AMOR από τον Chris Spiegel
About[eo]=Artaĵo de Masayuki Koba\nAMOR-ita de Chris Spiegel
About[es]=Arte de oneko por Masayuki Koba\nAMORizado por Chris Spiegel
About[et]=Hiirepüüdja graafika: Masayuki Koba\nAMORile kohandas: Chris Spiegel
About[eu]=Artelana onekotik Masayuki Kobak egina\nChris Spiegel'ek AMOR'tua
About[fa]=کارهنری از oneko توسط ماسایوکی کوبا \nAMOR'd توسط کریس اسپیگل
About[fi]=Kuvat oneko ohjelmasta, tehnyt Masayuki Koba\nMuokannut Amorille sopivaksi Chris Spiegel
About[fr]=Travail basé sur « oneko » de Masayuki Koba\nAMORé par Chris Spiegel
About[ga]=Maisiúchán ó oneko le Masayuki Koba\nCurtha i AMOR ag Chris Spiegel
About[gl]=Imaxes de oneko por Masayuki Koba\nAdaptadas a AMOR por Chris Spiegel
About[he]=עבודות האמנות מתוך oneko מאת מאסאיוקי קובה\nהותאם ל־AMOR על ידי כריס שפיגל
About[hi]=कलाकृति ओनेको से, मसायुकी कोबा द्वारा\nअमोर्ड- क्रिस स्पीजेल द्वारा
About[hr]=Slike preuzete iz: oneko, autor Masayuki Koba\nZa AMOR prilagodi: Chris Spiegel
About[hu]=A grafika Masuyaki Koba Onekojából származik\nAMOR-átirat: Chris Spiegel
About[is]=Artwork from oneko by Masayuki Koba\nAMOR-erað af Chris Spiegel
About[it]=I disegni provengono da Oneko, di Masayuki Koba.\nConvertito ad AMOR da Chris Spiegel.
About[ja]=oneko のグラフィック by Masayuki Koba\nAMOR化 by Chris Spiegel
About[km]=សិល្បៈកម្ម​ពី អូនេកូ(oneko) ដោយ មាសាយូគី កូបា (Masayuki Koba)\nAMOR'd ដោយ Chris Spiegel
About[lt]=Meninė dalis iš oneko, daryto Masayuki Koba\nAMOR'ui pritaikė Chris Spiegel
About[lv]=Grafika - Masayuki Koba\nAMOR'd - Chris Spiegel
About[mk]=Сликите се од oneko на Masayuki Koba\nПриспособено за AMOR од Крис Спигел
About[mt]=Artwork minn oneko ta' Masayuki Koba\nMaqlub għal AMOR minn Chris Spiegel
About[nb]=Kunstnerisk arbeide fra oneko av Masayuki Koba\nTilpasset AMOR av Chris Spiegel
About[nds]=oneko-Biller vun Masayuki Koba\nFör AMOR ümsett vun Chris Spiegel
About[ne]=Masayuki Koba द्वारा वानकोबाट कलाकार्य\nAMOR'd by Chris Spiegel
About[nl]=Illustraties van oneko door Masayuki Koba\nOvergezet naar AMOR door Chris Spiegel
About[nn]=Bilete frå oneko av Masayuki Koba\nTilpassa AMOR av Chris Spiegel
About[pl]=Pochodzi z oneko, autorstwa Masayuki Koba\ndostosowane do AMOR przez Chrisa Spiegela
About[pt]=Criação do oneko de Masayuki Koba\nAMORado por Chris Spiegel
About[pt_BR]=Arte por Masayuki Koba\nAMOR por Chris Spiegel
About[ro]=Grafică din oneko de Masayuki Koba\nPortat la AMOR de Chris Spiegel
About[ru]=Рисунки от oneko - Masayuki Koba\nАдаптировано для AMOR - Chris Spiegel
About[sk]=Obrázok z programu oneko od Masayuki Koba\nAMORoval Chris Spiegel
About[sl]=Umetniško delo iz oneko izdelal Masayuki Koba\niz AMOR pa Chris Spiegel
About[sr]=Графика из Oneko-а од Масајукија Кобе (Masayuki Koba)\nУ AMOR претворио Крис Шпигел (Chris Spiegel)
About[sr@Latn]=Grafika iz Oneko-a od Masajukija Kobe (Masayuki Koba)\nU AMOR pretvorio Kris Špigel (Chris Spiegel)
About[sv]=Grafik från oneko av Masayuki Koba\nTill Amor av Chris Spiegel
About[tg]=Масаюки Коба\nИШҚ - Крис Спигел
About[th]=งานศิลป์จาก oneko โดย Masayuki Koba\nAMOR'd โดย Chris Spiegel
About[tr]=Çizimler Masayuki Koba\nArmor'a geçiş Chris Spiegel
About[uk]=Праця від oneko, автор: Masayuki Koba\nАдаптовано до AMOR - Chris Spiegel
About[ven]=Mushumo wa zwanda ubva kha oneko nga Masayuki Koba\nAMOR'd nga Chris Spiegel
About[xh]=Artwork esuka oneko ngu Masayuki Koba\nAMOR'd ngo Chris Spiegel
About[zh_CN]=艺术作者为 oneko 小组的 Masayuki Koba\nAMOR'd 作者为 Chris Spiegel
About[zu]=Umsebenzi wezandla osuka ku Masayuki Koba\nAMOR'd ngu Chris Spiegel
Icon=../../preview/neko.png
Base=Base
Sequences=RightScratch,LeftScratch,RunRight,RunLeft,Yawn,RightLick,LeftLick,Claw,JumpRight,JumpLeft
Focus=Start
Blur=End
Destroy=DropOut
Sleep=Snooze
Wake=Surprise
[Base]
Sequence=tail.png,sit.png,tail.png,sit.png,tail.png,sit.png,tail.png,sit.png,tail.png,sit.png,tail.png,sit.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0
Delay=200,200,200,200,200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29,29
[JumpRight]
Sequence=jump1.png,jump2.png,run2.png,jump3.png,jump4.png
Movement=10,10,10,10,10
Delay=200,200,200,200,200
HotspotX=16,16,16,16,16
HotspotY=34,40,44,34,29
[JumpLeft]
Sequence=jumpl1.png,jumpl2.png,run4.png,jumpl3.png,jumpl4.png
Movement=-10,-10,-10,-10,-10
Delay=200,200,200,200,200
HotspotX=16,16,16,16,16
HotspotY=34,40,44,34,29
[Claw]
Sequence=claw1.png,claw2.png,claw1.png,claw2.png,claw1.png,claw2.png,claw1.png,claw2.png
Movement=0,0,0,0,0,0,0,0
Delay=200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16
HotspotY=17,17,17,17,17,17,17,17
[Snooze]
Sequence=sleep1.png,sleep2.png
Movement=0,0
Delay=450,450
HotspotX=16,16
HotspotY=29,29
[Surprise]
Sequence=surprise.png
Movement=0
Delay=600
HotspotX=16
HotspotY=29
[RightScratch]
Sequence=scratch1.png,scratch2.png,scratch1.png,scratch2.png,scratch1.png,scratch2.png,scratch1.png,scratch2.png,scratch1.png,scratch2.png,scratch1.png,scratch2.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,
Delay=100,100,100,100,100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29,29
[LeftScratch]
Sequence=scratch3.png,scratch4.png,scratch3.png,scratch4.png,scratch3.png,scratch4.png,scratch3.png,scratch4.png,scratch3.png,scratch4.png,scratch3.png,scratch4.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,
Delay=100,100,100,100,100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29,29
[RunRight]
Sequence=run2.png,run1.png,run2.png,run1.png,run2.png,run1.png,run2.png,run1.png,run2.png,run1.png,run2.png,run1.png
Movement=10,10,10,10,10,10,10,10,10,10,10,10
Delay=100,100,100,100,100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29,29
[RunLeft]
Sequence=run4.png,run3.png,run4.png,run3.png,run4.png,run3.png,run4.png,run3.png,run4.png,run3.png,run4.png,run3.png
Movement=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10
Delay=100,100,100,100,100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29,29
# It seems, for me, that if Start and End are only one pixmap,
# they don't stay on for the desired delay .. ?? Anyway, this
# seems to work OK
[End]
Sequence=surprise.png,surprise.png,surprise.png,surprise.png
Movement=0,0,0,0
Delay=400,400,400,400
HotspotX=16,16,16,16
HotspotY=29,29,29,29
[Start]
Sequence=yawn.png,yawn.png,yawn.png,yawn.png
Movement=0,0,0,0
Delay=400,400,400,400
HotspotX=16,16,16,16
HotspotY=29,29,29,29
[Yawn]
Sequence=yawn.png
Movement=0
Delay=1600
HotspotX=16
HotspotY=29
[RightLick]
Sequence=lick.png,sit.png,lick.png,sit.png,lick.png,sit.png,lick.png,sit.png,lick.png,sit.png,lick.png
Movement=0,0,0,0,0,0,0,0,0,0,0
Delay=100,100,100,100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29
[LeftLick]
Sequence=lick2.png,sit.png,lick2.png,sit.png,lick2.png,sit.png,lick2.png,sit.png,lick2.png,sit.png,lick2.png
Movement=0,0,0,0,0,0,0,0,0,0,0
Delay=100,100,100,100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16,16,16,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29
# Values shamelessly stolen from Bonhomme, by Jean-Claude Dumas .. :)
[DropOut]
Sequence=surprise.png,surprise.png,surprise.png,surprise.png,surprise.png,surprise.png,surprise.png,surprise.png
Movement=0,0,0,0,0,0,0,0
Delay=150,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16
HotspotY=0,-25,-50,-100,-250,-500,-750,-1000

@ -0,0 +1 @@
SUBDIRS = animated preview static

@ -0,0 +1 @@
SUBDIRS = blob bonhomme eyes ghost neko pingu tao worm

@ -0,0 +1,82 @@
# Add all your pic files here
amor_DATA = blob_b1.png \
blob_b2.png \
blob_BeamDown1.png \
blob_BeamDown2.png \
blob_BeamDown3.png \
blob_BeamDown4.png \
blob_BeamDown5.png \
blob_BeamDown6.png \
blob_BeamDown7.png \
blob_BeamDown8.png \
blob_BeamDown9.png \
blob_BeamUp10.png \
blob_BeamUp1.png \
blob_BeamUp2.png \
blob_BeamUp3.png \
blob_BeamUp4.png \
blob_BeamUp5.png \
blob_BeamUp6.png \
blob_BeamUp7.png \
blob_BeamUp8.png \
blob_BeamUp9.png \
blob_e1.png \
blob_ex1.png \
blob_f1.png \
blob_f2.png \
blob_f3.png \
blob_fire10.png \
blob_fire11.png \
blob_fire2.png \
blob_fire3.png \
blob_fire4.png \
blob_fire5.png \
blob_fire6.png \
blob_fire7.png \
blob_fire8.png \
blob_fire9.png \
blob_g1.png \
blob_g2.png \
blob_gl1.png \
blob_gl2.png \
blob_gl3.png \
blob_h1.png \
blob_h2.png \
blob_h3.png \
blob_jet1.png \
blob_jet2.png \
blob_jet3.png \
blob_jet4.png \
blob_l_jet1.png \
blob_l_jet2.png \
blob_l_jet3.png \
blob_l_jet4.png \
blob_l_turn1.png \
blob_l_turn2.png \
blob_l_turn3.png \
blob_l_turn4.png \
blob.png \
blob_r135.png \
blob_r180.png \
blob_r225.png \
blob_r270.png \
blob_r315.png \
blob_r45.png \
blob_r90.png \
blob_r_turn1.png \
blob_r_turn2.png \
blob_r_turn3.png \
blob_r_turn4.png \
blob_s1.png \
blob_s2.png \
blob_s3.png \
blob_sl1.png \
blob_sl2.png \
blob_sl3.png \
blob_sl4.png \
blob_z1.png \
blob_z2.png \
blob_z3.png
# This is where it will all be installed
amordir = $(kde_datadir)/amor/pics/animated/blob

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 662 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 924 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

@ -0,0 +1,46 @@
# Add all your pic files here
amor_DATA = b1.png \
b1-r.png \
b2.png \
b2-r.png \
b3.png \
b3-r.png \
b4.png \
b4-r.png \
bcol1.png \
bcol2.png \
bdrib1.png \
bdrib2.png \
bdrib3.png \
bdrib4.png \
bdrib5.png \
bdrib6.png \
bdrib7.png \
bdrop.png \
b-f2.png \
b-f.png \
bgo1.png \
bgo2.png \
bgo3.png \
bgo4.png \
bgo5.png \
bgo6.png \
bgo7.png \
bh1.png \
bpof1.png \
bpof2.png \
bpof3.png \
bpof4.png \
bpof5.png \
bpof6.png \
sa1.png \
sa2a.png \
sa2b.png \
sa2c.png \
sa2.png \
salut1.png \
salut.png
# This is where it will all be installed
amordir = $(kde_datadir)/amor/pics/animated/bonhomme

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

@ -0,0 +1,31 @@
# Add all your pic files here
amor_DATA = eye_1.png \
eye_2.png \
eye_b.png \
eye_d.png \
eye_e.png \
eye_h1.png \
eye_h2.png \
eye_h3.png \
eye_h4.png \
eye_l.png \
eye_m1.png \
eye_m2.png \
eye_m3.png \
eye_m4.png \
eye_m5.png \
eye_m6.png \
eye_m7.png \
eye_s1.png \
eye_s2.png \
eye_s3.png \
eye_s4.png \
eye_u.png \
eye_z1.png \
eye_z2.png \
eye_z3.png \
eye_z4.png \
eye_z5.png
# This is where it will all be installed
amordir = $(kde_datadir)/amor/pics/animated/eyes

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

@ -0,0 +1,19 @@
# Add all your pic files here
amor_DATA = ghost_1.png \
ghost_2.png \
ghost_e.png \
ghost_m1.png \
ghost_m2.png \
ghost_m3.png \
ghost_m4.png \
ghost_m5.png \
ghost_m6.png \
ghost_m7.png \
ghost_z1.png \
ghost_z2.png \
ghost_z3.png \
ghost_z4.png \
ghost_z5.png
# This is where it will all be installed
amordir = $(kde_datadir)/amor/pics/animated/ghost

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

@ -0,0 +1,31 @@
# Add all your pic files here
amor_DATA = claw1.png \
claw2.png \
jump1.png \
jump2.png \
jump3.png \
jump4.png \
jumpl1.png \
jumpl2.png \
jumpl3.png \
jumpl4.png \
lick2.png \
lick.png \
run1.png \
run2.png \
run3.png \
run4.png \
scratch1.png \
scratch2.png \
scratch3.png \
scratch4.png \
sitleft.png \
sit.png \
sleep1.png \
sleep2.png \
surprise.png \
tail.png \
yawn.png
# This is where it will all be installed
amordir = $(kde_datadir)/amor/pics/animated/neko

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

@ -0,0 +1,104 @@
# Add all your pic files here
amor_DATA = bash_l10.png \
bash_l11.png \
bash_l12.png \
bash_l1.png \
bash_l2.png \
bash_l3.png \
bash_l4.png \
bash_l5.png \
bash_l6.png \
bash_l7.png \
bash_l8.png \
bash_l9.png \
bash_r10.png \
bash_r11.png \
bash_r12.png \
bash_r1.png \
bash_r2.png \
bash_r3.png \
bash_r4.png \
bash_r5.png \
bash_r6.png \
bash_r7.png \
bash_r8.png \
bash_r9.png \
blocker1.png \
blocker2.png \
blocker3.png \
blocker4.png \
blocker5.png \
blocker6.png \
bomber10.png \
bomber11.png \
bomber12.png \
bomber13.png \
bomber14.png \
bomber15.png \
bomber16.png \
bomber1.png \
bomber2.png \
bomber3.png \
bomber4.png \
bomber5.png \
bomber6.png \
bomber7.png \
bomber8.png \
bomber9.png \
digger10.png \
digger11.png \
digger12.png \
digger13.png \
digger14.png \
digger1.png \
digger2.png \
digger3.png \
digger4.png \
digger5.png \
digger6.png \
digger7.png \
digger8.png \
digger9.png \
faller1.png \
faller2.png \
faller3.png \
faller4.png \
faller5.png \
faller6.png \
faller7.png \
faller8.png \
floater1.png \
floater2.png \
floater3.png \
floater4.png \
floater5.png \
floater6.png \
floater7.png \
floater8.png \
tumble1.png \
tumble2.png \
tumble3.png \
tumble4.png \
tumble5.png \
tumble6.png \
tumble7.png \
tumble8.png \
walk_l1.png \
walk_l2.png \
walk_l3.png \
walk_l4.png \
walk_l5.png \
walk_l6.png \
walk_l7.png \
walk_l8.png \
walk_r1.png \
walk_r2.png \
walk_r3.png \
walk_r4.png \
walk_r5.png \
walk_r6.png \
walk_r7.png \
walk_r8.png
# This is where it will all be installed
amordir = $(kde_datadir)/amor/pics/animated/pingu

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1014 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 862 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 977 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 898 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 679 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 907 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 998 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 987 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 986 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 926 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 961 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 965 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 965 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 847 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 869 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 909 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1008 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 868 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

@ -0,0 +1,50 @@
# Add all your pic files here
amor_DATA = yy105.png \
yy120.png \
yy135.png \
yy150.png \
yy15.png \
yy165.png \
yy180.png \
yy195.png \
yy-1.png \
yy210.png \
yy225.png \
yy240.png \
yy255.png \
yy270.png \
yy285.png \
yy-2.png \
yy300.png \
yy30.png \
yy315.png \
yy330.png \
yy345.png \
yy-3.png \
yy45.png \
yy-4.png \
yy-5.png \
yy60.png \
yy-6.png \
yy75.png \
yy-7.png \
yy-8.png \
yy90.png \
yy-9.png \
yy.png \
yyx10.png \
yyx12.png \
yyx14.png \
yyx16.png \
yyx18.png \
yyx20.png \
yyx22.png \
yyx24.png \
yyx26.png \
yyx28.png \
yyx30.png \
yyx6.png \
yyx8.png
# This is where it will all be installed
amordir = $(kde_datadir)/amor/pics/animated/tao

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 985 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 985 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 924 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 947 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

@ -0,0 +1,40 @@
# Add all your pic files here
amor_DATA = w-a1.png \
w-a2.png \
w-b1.png \
w-b2.png \
w-be1.png \
w-be2.png \
w-be3.png \
w-be4.png \
w-d1.png \
w-d2.png \
w-d3.png \
w-d4.png \
w-d5.png \
w-dr1.png \
w-e1.png \
w-l1.png \
w-l2.png \
w-l3.png \
w-ml0.png \
w-ml1.png \
w-ml2.png \
w-ml3.png \
w-mr0.png \
w-mr1.png \
w-mr2.png \
w-mr3.png \
w-s1.png \
w-s2.png \
w-s3.png \
w-u1.png \
w-u2.png \
w-u3.png \
w-wl1.png \
w-wl2.png \
w-wr1.png \
w-wr2.png
# This is where it will all be installed
amordir = $(kde_datadir)/amor/pics/animated/worm

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

@ -0,0 +1,5 @@
# Add all your pic files here
amor_DATA = billy.png bonhomme.png ghost.png neko.png tux.png blob.png bsd.png eyes.png tao.png worm.png
# This is where it will all be installed
amordir = $(kde_datadir)/amor/pics/preview

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 B

@ -0,0 +1,5 @@
# Add all your pic files here
amor_DATA = billy.png bsd.png tux.png
# This is where it will all be installed
amordir = $(kde_datadir)/amor/pics/static

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -0,0 +1,167 @@
# KDE Config File
[Config]
PixmapPath=pics/animated/pingu
Description=Tux
Description[be]=Tукс
Description[bg]=Тъкс
Description[bn]=টাক্স
Description[eo]=Tuĉjo
Description[he]=טקס
Description[hi]=टक्स
Description[lv]=Tuksis
Description[mk]=Пингвин
Description[ne]=टक्स
Description[ru]=Тукс
Description[ta]= Tux
Description[tg]=Тукс
Description[th]=ตุ๊กซ์
Description[tr]=Penguen (Hareketli)
Description[uz]=Taks
Description[uz@cyrillic]=Такс
Description[zh_CN]=Tux小企鹅
About=By Frank Pieczynski\nBased on graphics of the game "pingus".
About[af]=Deur Frank Pieczynski\nBased op grafieka van die speletjie "pingus".
About[ar]=من فرانك بيسزينسكي\nمبنية على رسومات لعبة "pingus".
About[az]=Frank Pieczynski tərəfindən\n"Pingus" oyunu qrafikaları əsasında.
About[be]=Аўтар Frank Pieczynski\nЗаснавана на графіцы з гульні "pingus".
About[bg]=Автор Франк Пижински\nБазирано на графика от играта pingus
About[bn]=তৈরি করেছেন পিসজিনস্কি\n"পিঙ্গাস" দলের গ্রাফিক্সের ওপর ভিত্তি করে।
About[br]=Gant Frank Pieczynski\nDiazezet war ur skeudenn c'hoari « pingus ».
About[bs]=Autor Frank Pieczynski\nBazirano na slikama iz igre "pingus".
About[ca]=Per Frank Pieczynski\nBasat en els gràfics del joc "pingus".
About[cs]=Autor Frank Pieczynski\nNa základě grafiky hry "pingus".
About[cy]=Gan Frank Pieczynski\nSeiliedig ar raffegau y gêm "pingus".
About[da]=Af Frank Pieczynski\nBaseret på grafik fra spillet "pingus".
About[de]=Von Frank Pieczynski\nNach den Graphiken des Spiels "Pingus"
About[el]=Από τον Frank Pieczynski\n Βασισμένο σε γραφικά από το παιχνίδι "pingus".
About[eo]=De Frank Pieczynski\nbazita sur grafikoj de la ludo "pingus".
About[es]=Por Frank Pieczynski\nBasado en gráficos del juego «pingus».
About[et]=Autor: Frank Pieczynski\nAluseks mängu "pingus" graafika.
About[eu]=Frank Pieczynskik egina\n"pingus" jokoaren irudietan oinarritua.
About[fa]=وسط فرانک پیزینسکی \nبر اساس نگاره‌های بازی «pingus».
About[fi]=Tehnyt Frank Pieczynski\nPerustuu "pingus" pelin grafiikoihin.
About[fr]=Par Frank Pieczynski\nBasé sur les graphismes du jeu « pingus ».
About[ga]=Le Frank Pieczynski\nBunaithe ar ghrafaic an chluiche "pingus".
About[gl]=Por Frank Pieczynski\nBaseado nos gráficos do xogo "pingus".
About[he]=מאת פרנק פיצינקסי\nמבוסס על הגרפיקה של המשחק "pingus".
About[hi]=फ्रेंक पाईजेंस्की द्वारा\nखेल "pingus" के चित्रों पर आधारित.
About[hr]=Autor: Frank Pieczynski\nZasnovano na grafici iz igre "pingus".
About[hu]=Készítette: Frank Pieczynski\nA grafika a "Pingus" nevű játékból származik.
About[is]=By Frank Pieczynski\nByggt á myndefni úr leiknum "pingus".
About[it]=Di Frank Pieczynski.\nBasato sulla grafica del gioco "pingus".
About[ja]=By Frank Pieczynski\nゲーム "pingus" のグラフィックに基づく
About[km]=ដោយ Frank Pieczynski\nផ្អែកលើក្រាហ្វិកល្បែង "pingus" ។
About[lt]=Darė Frank Pieczynski\nPagal „pingus“ žaidimo grafiką.
About[lv]=Autors - Frank Pieczynski\nBāzēts uz spēles "pingus" grafiskās idejas.
About[mk]=Од Frank Pieczynski\nБазирано на графиката од играта „pingus“.
About[mt]=Ta' Frank Pieczynski\nIbażat fuq grafika tal-logħba "pingus".
About[nb]=Av Frank Pieczynski\nBasert på bilde fra spillet «pingus».
About[nds]=Vun Frank Pieczynski\nBuut op Biller vun dat Speel "pingus".
About[ne]=फ्र्‌याङ्क पाइस्जिन्किद्वारा\nखेल "pingus"को ग्राफिकहरूमा आधारित
About[nl]=Door Frank Pieczynski\nGebaseerd op illustraties uit het spel "pingus".
About[nn]=Av Frank Pieczynski\nBasert på grafikk frå spelet "pingus".
About[pl]=Autorstwa Franka Pieczynskiego\nNa podstawie grafiki z gry "pingus".
About[pt]=De Frank Pieczynski\nBaseado numa imagem do jogo "pingus".
About[pt_BR]=Por Frank Pieczynski\nBaseado nos gráficos do jogo "pingus".
About[ro]=De Frank Pieczynski\nBazat pe grafica jocului "pingus".
About[ru]=Автор - Frank Pieczynski\nНа основе графики игры "pingus".
About[sk]=Vytvoril Frank Pieczynski\nZaložené na grafike z hry "pingus".
About[sl]=Od Franka Pieczynskega\nTemelji na grafiki igre "pingus".
About[sr]=Од Френка Пјечинског (Frank Pieczynski)\нБазирано на графици игре Pingus.
About[sr@Latn]=Od Frenka Pječinskog (Frank Pieczynski)\nBazirano na grafici igre Pingus.
About[sv]=Av Frank Pieczynski\nBaserad på grafik från spelet "Pingus"
About[ta]=பிரான்க் பிஸ்சிகி \nஅசைவுட்ட விளையாட்டு " பின்கஸ்" லை பற்றியது.
About[tg]=Франки Пикзунский\nТасвирҳои бозии "pingus".
About[th]=โดย Frank Pieczynski\nโดยใช้พื้นฐานกราฟิกจากเกม "pingus"
About[tr]=Frank Pieczynski\nPingus oyunundan esinlenilmiştir.
About[uk]=Автор: Frank Pieczynski\nПобудовано з графіки для гри "pingus".
About[uz]=Frank Pissinski (Frank Pieczynski) yaratgan\nPingus oʻyinining grafikasida asoslangan.
About[uz@cyrillic]=Франк Писцински (Frank Pieczynski) яратган\nPingus ўйинининг графикасида асосланган.
About[ven]=Nga Frank Pieczynski\nZwo di sendeka nga girafu ya mutambo "pingus".
About[xh]=Ngu Frank Pieczynski\nyamelene nemizobo yomdlalo "pingus".
About[zh_CN]=作者Frank Pieczynski\n基于“pingus”游戏中的图形。
About[zu]=Ngu Frank Pieczynski\nIsekelwe emidwebeni yomdlalo "pingus".
Icon=../../preview/tux.png
Base=Base
Sequences=WalkLeft,WalkRight,Float,Tumble,Dig,BashLeft,BashRight
Focus=FallUp
Blur=FallDown
Destroy=Bomb
[Base]
Sequence=blocker1.png,blocker2.png,blocker3.png,blocker4.png,blocker5.png,blocker6.png,blocker1.png,blocker2.png,blocker3.png,blocker4.png,blocker5.png,blocker6.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0
Delay=200,200,1000,200,200,200,200,200,1000,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=32,32,32,32,32,32,32,32,32,32,32,32
[Float]
Sequence=floater1.png,floater2.png,floater3.png,floater4.png,floater5.png,floater6.png,floater7.png,floater8.png
Movement=2,2,2,2,2,2,2,2
Delay=200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16
HotspotY=32,40,50,60,60,50,40,32
[FallDown]
Sequence=faller1.png,faller2.png,faller3.png,faller4.png,faller5.png,faller6.png,faller7.png,faller8.png
Movement=0,0,0,0,0,0,0,0
Delay=200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16
HotspotY=20,10,-10,-50,-130,-300,-500,-750
#HotspotY=32,20,0,-20,-50,-80,-120,-160
[FallUp]
Sequence=faller1.png,faller2.png,faller3.png,faller4.png,faller5.png,faller6.png,faller7.png,faller8.png
Movement=0,0,0,0,0,0,0,0
Delay=100,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16
HotspotY=750,500,250,150,100,75,50,40
[Tumble]
Sequence=tumble1.png,tumble2.png,tumble3.png,tumble4.png,tumble5.png,tumble6.png,tumble7.png,tumble8.png
Movement=0,0,0,0,0,0,0,0
Delay=200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16
HotspotY=32,32,32,32,32,32,32,32
[WalkLeft]
Sequence=walk_l1.png,walk_l2.png,walk_l3.png,walk_l4.png,walk_l5.png,walk_l6.png,walk_l7.png,walk_l8.png
Movement=-4,-4,-4,-4,-4,-4,-4,-4
Delay=300,300,300,300,300,300,300,300
HotspotX=16,16,16,16,16,16,16,16
HotspotY=32,32,32,32,32,32,32,32
[WalkRight]
Sequence=walk_r1.png,walk_r2.png,walk_r3.png,walk_r4.png,walk_r5.png,walk_r6.png,walk_r7.png,walk_r8.png
Movement=4,4,4,4,4,4,4,4
Delay=300,300,300,300,300,300,300,300
HotspotX=16,16,16,16,16,16,16,16
HotspotY=32,32,32,32,32,32,32,32
[BashLeft]
Sequence=bash_l1.png,bash_l2.png,bash_l3.png,bash_l4.png,bash_l5.png,bash_l6.png,bash_l7.png,bash_l8.png,bash_l9.png,bash_l10.png,bash_l11.png,bash_l12.png
Movement=-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8
Delay=200,200,200,200,200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=32,32,32,32,32,32,32,32,32,32,32,32
[BashRight]
Sequence=bash_r1.png,bash_r2.png,bash_r3.png,bash_r4.png,bash_r5.png,bash_r6.png,bash_r7.png,bash_r8.png,bash_r9.png,bash_r10.png,bash_r11.png,bash_r12.png
Movement=8,8,8,8,8,8,8,8,8,8,8,8
Delay=200,200,200,200,200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=32,32,32,32,32,32,32,32,32,32,32,32
[Bomb]
Sequence=bomber1.png,bomber2.png,bomber3.png,bomber4.png,bomber5.png,bomber6.png,bomber7.png,bomber8.png,bomber9.png,bomber10.png,bomber11.png,bomber12.png,bomber13.png,bomber14.png,bomber15.png,bomber16.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=100,100,100,100,100,100,100,100,100,100,100,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
[Dig]
Sequence=digger1.png,digger2.png,digger3.png,digger4.png,digger5.png,digger6.png,digger7.png,digger8.png,digger9.png,digger10.png,digger11.png,digger12.png,digger13.png,digger14.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=200,200,200,200,200,200,200,200,200,200,200,200,200,200
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=32,32,32,32,32,32,32,32,32,32,32,32,32,32

@ -0,0 +1,148 @@
# KDE Config File
[Config]
PixmapPath=pics/animated/tao
Description=Tao
Description[be]=Дао
Description[bg]=Тао
Description[bn]=তাও
Description[he]=טאו
Description[hi]=ताओ
Description[mk]=Тао
Description[ne]=टाओ
Description[ru]=Дао
Description[sr]=Тао
Description[ta]= Tao
Description[th]=เต๋า
Description[uz@cyrillic]=Тао
Description[zh_CN]=道
About=By Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang symbol inspired by my Tai Chi practice.
About[af]=Deur Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang simbool geïnspireer Deur my Tai Chi oefening.
About[ar]=تأليف Daniel Pfeiffer <occitan@esperanto.org>\nرموز الين و اليان من ممارستي للتاي شي.
About[az]=Daniel Pfeiffer <occitan@esperanto.org> tərəfindən\nYin Yang symbol inspired by my Tai Chi practice.
About[be]=Аўтар Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang symbol inspired by my Tai Chi practice.
About[bg]=Автор Даниел Пфайфар <occitan@esperanto.org>\nИдеята за символа идва от хобито на автора
About[bn]=তৈরি করেছেন ড্যানিয়েল ফেইফার <occitan@esperanto.org>\nইন ইয়াং প্রতীকের অনুপ্রেরণা পেয়েছি আমার তাই চি অনুশীলন থেকে।
About[br]=Gant Daniel Pfeiffer <occitan@esperanto.org>\nArouez Yin Yang a zo awenet gant pleustr Tai Chi.
About[bs]=Autor Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang simbol inspirisan mojim prakticiranjem Tai Chi.
About[ca]=Per Daniel Pfeiffer <occitan@esperanto.org>\nEl símbol del Yin Yang s'ha inspirat en la meva pràctica del Tai Chi.
About[cs]=Autor Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang symbol inspirován mým cvičením Taiči
About[cy]=Gan Daniel Pfeiffer <occitan@esperanto.org>\n Ysbrydolwyd y symbol Yin Yang gan fy ymarfer Tai Chi.
About[da]=Af Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang-symbol inspireret fra mine Tai Chi-øvelser.
About[de]=Von Daniel Pfeiffer <occitan@esperanto.org>\nYin-Yang-Symbol inspiriert durch meine Tai-Chi-Übungen
About[el]=Από τον Daniel Pfeiffer <occitan@esperanto.org>\n Το σύμβολο Yin Yang εμπνευσμένο από την πρακτική μου στο Tai Chi.
About[eo]=De Daniel Pfeiffer <occitan@esperanto.org>\nJinjan-simbolo inspirita de mia Tajĝi-praktikado.
About[es]=Por Daniel Pfeiffer <occitan@esperanto.org>\nSímbolo del Yin Yang, inspirado en mi práctica de Tai Chi.
About[et]=Autor: Daniel Pfeiffer <occitan@esperanto.org>\nYin-yangi sümbol jäi mulle külge taiji harrastusest.
About[eu]=Daniel Pfeiffer egina <occitan@esperanto.org>\nYin Yang simboloa nire Tai Chi praktikan oinarritua.
About[fa]=توسط دنیل فیفر <occitan@esperanto.org>\n نماد الهام گرفته توسط یینیانگ تمرین تای چی من
About[fi]=Tehnyt Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang symbolin inspiroinut Tai Chi -harjoitukseni.
About[fr]=Par Daniel Pfeiffer <occitan@esperanto.org>\nLe symbole Yin Yang est inspiré par ma pratique du Tai Chi.
About[ga]=Le Daniel Pfeiffer <occitan@esperanto.org>\nSiombail Yin Yang spreagtha ag mo chleachtadh Tai Chi.
About[gl]=Por Daniel Pfeiffer <occitan@esperanto.org>\nO símbolo do Yin-Yang inspirado na miña prática do Tai Chi.
About[he]=מאת דניאל פפר <occitan@esperanto.org>\nההשראה לסמל היין-יאנג נלקחה מאימוני הטאי צ'י שלי.
About[hi]=डेनियल फीफ़र द्वारा <occitan@esperanto.org>\nयिन यांग चिह्न मेरे ताई-ची अभ्यास से प्रेरित
About[hr]=Daniel Pfeiffer <occitan@esperanto.org>\n"Znak 'Yin Yang' inspiriralo je moje vježbanje Tai Chia."
About[hu]=Készítette: Daniel Pfeiffer (<occitan@esperanto.org>)\nA 'Yin Yang' szimbólumot saját Tai Chi gyakorlataimból merítettem.
About[is]=By Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang merkið kom til af áhuga mínum á Tai Chi.
About[it]=Di Daniel Pfeiffer <occitan@esperanto.org>\nSimbolo Yin Yang ispirato alla mia pratica Tai Chi.
About[ja]=By Daniel Pfeiffer <occitan@esperanto.org>\n太極拳の練習から発想を得た陰陽シンボル
About[km]=ដោយ Daniel Pfeiffer <occitan@esperanto.org>\nនិមិត្តសញ្ញាយីងយ៉ាង(Yin Yang) ដែលបង្កើត​ឡើងដោយការអនុវត្តតាយឈី (Tai Chi) របស់​ខ្ញុំ ។
About[lt]=Darė Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang simbolį įkvėpė mano Tai Chi praktika.
About[lv]=Autors - Daniel Pfeiffer <occitan@esperanto.org>\nIņ Jaņ motīvu inspirācija no personīgās Tai Chi praktizēšanas.
About[mk]=Од Даниел Фајфер <occitan@esperanto.org>\nСимболот Јин-Јанг е инспириран од моето вежбање на Тај Чи.
About[mt]=Ta' Daniel Pfeiffer <occitan@esperanto.org>\nSimbolu Yin Yang ispirat mil-prattika tiegħi tat-Tai Chi.
About[nb]=Av Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang symbolet er inspirert av mine Tai Chi-øvelser.
About[nds]=Vun Daniel Pfeiffer <occitan@esperanto.org>\n"Yin un Yang"-Symbool, anreegt dör mien Tai-Chi-Öven.
About[ne]=डानियल फेइफरद्वारा <occitan@esperanto.org>\nमेरो टाइ चि अभ्यासद्वारा यिङ् याङ् प्रेरणा गरीएको प्रतिक।
About[nl]=Door Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang-symbool geïnspireerd door mijn Tai Chi-ervaring.
About[nn]=Av Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang-symbolet er inspirert av Tai Chi-erfaringa mi.
About[pl]=Autorstwa Daniela Pfeiffera <occitan@esperanto.org>\nYin Symbol Yang inspirowany przez moją praktykę Tai Chi.
About[pt]=De Daniel Pfeiffer <occitan@esperanto.org>\nSímbolo do Yin Yang inspirado na minha prática de Tai Chi.
About[pt_BR]=Por Daniel Pfeiffer <occitan@esperanto.org>\nSímbolo Yin Yang inspirado em minha prática de Tai Chi.
About[ro]=De Daniel Pfeiffer <occitan@esperanto.org>\nSimbol Yin Yang inspirat de practica Tai Chi.
About[ru]=Автор - Daniel Pfeiffer <occitan@esperanto.org>\nСимвол инь-ян взят из моей практики тайцзи.
About[sk]=Vytvoril Daniel Pfeiffer <occitan@esperanto.org>\nSymbol Yin Yang inšpirovaný mojou skúsenosťou s Tai Chi.
About[sl]=Od Daniela Pfeifferja <occitan@esperanto.org>\nZa simbol jin-jang sem dobil navdih pri vadbi tai chija.
About[sr]=Од Данијела Фајфера (Daniel Pfeiffer) <occitan@esperanto.org>\nСимбол Јинга и Јанга инспирисан мојом тај-чи вежбом.
About[sr@Latn]=Od Danijela Fajfera (Daniel Pfeiffer) <occitan@esperanto.org>\nSimbol Jinga i Janga inspirisan mojom taj-či vežbom.
About[sv]=Av Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang symbol inspirerad av att utöva Tai Chi
About[tg]=Даниел Пфейфиффер <occitan@esperanto.org>\Тасвирҳо аз машқи Tai Chi
About[th]=โดย Daniel Pfeiffer <occitan@esperanto.org>\nสัญลักษณ์ หยิน-หยาง จากแบบฝึก Tai Chi ของผม
About[tr]=Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang sembolü Tai Chi'den esinlenilmiştir.
About[uk]=Автор: Daniel Pfeiffer <occitan@esperanto.org>\nСимвол Yin Yang від натхнення з моєї практики Tai Chi.
About[ven]=Nga Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang zwiga zwo tutuwedzhwa nga nga ndowendowe yanga ya Tai Chi.
About[xh]=By Daniel Pfeiffer <occitan@esperanto.org>\nYin Yang iphawu ikhuthaziswe luqheliso lwam lwe Tai Chi.
About[zh_CN]=作者Daniel Pfeiffer <occitan@esperanto.org>\n我从太极锻炼中得到灵感的阴阳符号。
About[zu]=Ngu Daniel Pfeiffer <occitan@esperanto.org>\nUphawu lwe-Yin Yang olugqugquzelwe ukwenza kwami i-Tai Chi.
Icon=../../preview/tao.png
Base=Base
Sequences=Left,Right,Turn
Focus=Grow
Blur=Shrink
Sleep=Hide
Wake=Unhide
Destroy=Fall
[Base]
Sequence=yy.png
Movement=0
Delay=2000
HotspotX=0
HotspotY=32
[Left]
Sequence=yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png
Movement=-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2
Delay=200,190,180,170,160,150,150,150,150,150,150,150,150,150,150,150,150,150,150,160,170,180,190,200
HotspotX=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
HotspotY=32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
[Right]
Sequence=yy15.png,yy30.png,yy45.png,yy60.png,yy75.png,yy90.png,yy105.png,yy120.png,yy135.png,yy150.png,yy165.png,yy180.png,yy195.png,yy210.png,yy225.png,yy240.png,yy255.png,yy270.png,yy285.png,yy300.png,yy315.png,yy330.png,yy345.png,yy.png
Movement=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
Delay=200,190,180,170,160,150,150,150,150,150,150,150,150,150,150,150,150,150,150,160,170,180,190,200
HotspotX=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
HotspotY=32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
[Turn]
Sequence=yy.png,yy15.png,yy30.png,yy45.png,yy60.png,yy75.png,yy90.png,yy105.png,yy120.png,yy135.png,yy150.png,yy165.png,yy180.png,yy195.png,yy210.png,yy225.png,yy240.png,yy255.png,yy270.png,yy285.png,yy300.png,yy315.png,yy330.png,yy345.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=200,190,180,170,160,150,150,150,150,150,150,150,150,150,150,150,150,150,150,160,170,180,190,200
HotspotX=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
HotspotY=32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
[Grow]
Sequence=yyx6.png,yyx8.png,yyx10.png,yyx12.png,yyx14.png,yyx16.png,yyx18.png,yyx20.png,yyx22.png,yyx24.png,yyx26.png,yyx28.png,yyx30.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=150,150,150,150,150,150,150,150,150,150,150,150,150
HotspotX=-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1
HotspotY=6,8,10,12,14,16,18,20,22,24,26,28,30
[Shrink]
Sequence=yyx30.png,yyx28.png,yyx26.png,yyx24.png,yyx22.png,yyx20.png,yyx18.png,yyx16.png,yyx14.png,yyx12.png,yyx10.png,yyx8.png,yyx6.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=150,150,150,150,150,150,150,150,150,150,150,150,150
HotspotX=-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13
HotspotY=30,28,26,24,22,20,18,16,14,12,10,8,6
[Hide]
Sequence=yy-1.png,yy-2.png,yy-3.png,yy-4.png,yy-5.png,yy-6.png,yy-7.png,yy-8.png,yy-9.png
Movement=0,0,0,0,0,0,0,0,0
Delay=150,150,150,150,150,150,150,150,60000
HotspotX=0,0,0,0,0,0,0,0,0
HotspotY=31,30,29,28,27,26,25,24,23
[Unhide]
Sequence=yy-9.png,yy-8.png,yy-7.png,yy-6.png,yy-5.png,yy-4.png,yy-3.png,yy-2.png,yy-1.png
Movement=0,0,0,0,0,0,0,0,0
Delay=150,150,150,150,150,150,150,150,150
HotspotX=0,0,0,0,0,0,0,0,0
HotspotY=23,24,25,26,27,28,29,30,31
[Fall]
Sequence=yy15.png,yy30.png,yy45.png,yy60.png,yy75.png,yy90.png,yy105.png,yy120.png,yy135.png,yy150.png,yy165.png,yy180.png,yy195.png,yy210.png,yy225.png,yy240.png,yy255.png,yy270.png,yy285.png,yy300.png,yy315.png,yy330.png,yy345.png,yy.png,yy15.png,yy30.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100
HotspotX=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
HotspotY=31,29,27,25,22,19,15,10,4,-3,-11,-21,-33,-47,-64,-85,-110,-140,-176,-219,-271,-333,-407,-496,-603,-731

@ -0,0 +1,39 @@
Don't run with scissors.
%
Never trust car salesmen or politicians.
%
Real programmers don't comment their code. It was hard to write, it should be hard to understand.
%
It is much easier to suggest solutions when you know nothing about the problem.
%
You can never have too much memory or disk space.
%
The answer is 42.
%
It's not a bug. It's a misfeature.
%
Help stamp out and abolish redundancy.
%
To maximize a window vertically, click the maximize button with the middle mouse button.
%
You can use Alt+Tab to switch between applications.
%
Press Ctrl+Esc to show the applications running in your current session.
%
Alt+F2 displays a small window that you can type a command into.
%
Ctrl+F1 to Ctrl+F8 can be used to switch virtual desktops.
%
You can move buttons on the panel using the middle mouse button.
%
Alt+F1 pops-up the system menu.
%
Ctrl+Alt+Esc can be used to kill an application that has stopped responding.
%
If you leave KDE applications open when you logout, they will be restarted automatically when you log back in.
%
The KDE file manager is also a web browser and an FTP client.
%
Applications can display messages and tips in an Amor bubble using the showMessage() and
showTip() DCOP calls
%

@ -0,0 +1,127 @@
# KDE Config File
[Config]
PixmapPath=pics/static
Static=true
Description=Unanimated Tux
Description[af]=Ongeanimeerde Tux
Description[ar]=Tux غير متحرك
Description[be]=Неанімаваны Тукс
Description[bg]=Неанимиран Тъкс
Description[bn]=অ্যানিমেশনবিহীন টাক্স
Description[bs]=Neanimirani Tux
Description[ca]=Tux sense animació
Description[cs]=Neanimovaný Tux
Description[cy]=Tux heb ei animeddio
Description[da]=Uanimeret Tux
Description[de]=Tux (nicht animiert)
Description[el]=Μη κινούμενος Tux
Description[eo]=Nemoviĝema Tuĉjo
Description[es]=Tux inanimado
Description[et]=Liikumatu Tux
Description[eu]=Tux animabakoa
Description[fa]=Tux غیر پویا
Description[fi]=Animoimaton Tux
Description[fr]=Tux (in)animé
Description[ga]=Tux neamhbheoite
Description[gl]=Tux Inanimado
Description[he]=טקס ללא הנפשה
Description[hi]=स्थिर टक्स
Description[hr]=Statički Tux
Description[hu]=nem animált Tux
Description[is]=Hreyfingalaus Tux
Description[it]=Tux immobile
Description[ja]=動かない Tux
Description[km]=Tux គ្មាន​ចលនា
Description[ko]=움직이지 않는 턱스
Description[lt]=Nejudantis Tux
Description[lv]=Neanimēts Tuksis
Description[mk]=Неанимиран пингвин
Description[nb]=Stillestående Tux
Description[nds]=Tux (nich animeert)
Description[ne]=एनिमेट नगरिएको टक्स
Description[nl]=Statische Tux
Description[nn]=Stilleståande Tux
Description[pl]=Nieanimowany Tux
Description[pt]=Tux não-animado
Description[pt_BR]=Tux Inanimado
Description[ro]=Tux neanimat
Description[ru]=Статичный Тукс
Description[sk]=Neanimovaný Tux
Description[sl]=Neanimiran Tux
Description[sr]=Неанимирани Tux
Description[sr@Latn]=Neanimirani Tux
Description[sv]=Tux utan animering
Description[tg]=Тукси оддӣ
Description[th]=ตุ๊กซ์ที่เคลื่อนไหวไม่ได้
Description[tr]=Haraketsiz Penguen
Description[uk]=Неоживлений Tux
Description[uz]=Animatsiyasiz Taks
Description[uz@cyrillic]=Анимациясиз Такс
Description[ven]=Tux i songo itwaho zwazwipuka
Description[xh]=Okungaphiliswanga Tux
Description[zh_CN]=没有动画的 Tux 小企鹅
Description[zh_TW]=不動的 Tux
About=Static window sitter
About[af]=Statiese venster sitter
About[ar]=قاعد النوافذ الساكنة
About[az]=Statik pəncərə mürəbbiyəsi
About[be]=Статычны наглядчык вокнаў
About[bg]=Неанимирано дяволче
About[bn]=উইন্ডোর এক স্থানে স্থির হয়ে বসে থাকে
About[bs]=Statički window sitter
About[ca]=Model estàtic de finestra
About[cs]=Statická ozdoba okna
About[cy]=Gwarchodydd ffenest sefydlog
About[da]=Statisk vinduessitter
About[de]=Statischer Fenstersitzer
About[el]=Στατικό εικονίδιο
About[eo]=Moviĝema fenestrosidulo
About[es]=Cuidador estático de ventanas
About[et]=Liikumatu aknahoidja
About[eu]=Lehio modelo egonkorra
About[fa]=مدل پنجرۀ ایستا
About[fi]=Staattinen ikkunallaistuja
About[fr]=Surveillant statique de fenêtres
About[ga]=Peata statach fuinneoige
About[gl]=Vixiante estático de fiestras
About[he]=שומר חלון סטטי
About[hi]=स्थिर विंडो सिटर
About[hr]=Statički sjedač na prozoru
About[hu]=Nem animált ablakdíszítés
About[is]=Situr og passar glugga
About[it]=Immagine statica
About[ja]=動かないウィンドウ監視人
About[km]=អ្នក​ថែទាំ​បង្អួចឋិតិវន្ត
About[lt]=Nejudantis sėdėtojas ant lango
About[lv]=Statisks uz loga sēdētājs
About[mk]=Статичен седач врз прозорци
About[mt]=Stampa statika
About[nb]=Statisk vindusitter
About[nds]=Fast Finstersitter
About[ne]=स्थिर सञ्झ्याल सिटर
About[nl]=Statische vensterzitter
About[nn]=Statisk vindaugssitjar
About[pl]=Stale w tym samym miejscu
About[pt]=Elemento estático pousado sobre as janelas
About[pt_BR]=Janela Estática
About[ro]=Imagine statică
About[ru]=Статичный сторож окон
About[sk]=Statická ozdoba okna
About[sl]=Statično okno
About[sr]=Статични седач на прозору
About[sr@Latn]=Statični sedač na prozoru
About[sv]=Statisk fönstervakt
About[ta]= நிலையான சாளரம் அமர்தல்
About[tg]=Нигаҳбонии статикии тиреза
About[th]=นั่งเล่นบนหน้าต่าง
About[tr]=Statik pencere bakıcı
About[uk]=Статична прикраса для вікна
About[ven]=Tshidzuli tsha window yo imaho
About[zh_CN]=窗口静坐者
Icon=../preview/tux.png
[Base]
Sequence=tux.png
HotspotX=25
HotspotY=54

@ -0,0 +1,225 @@
# KDE Config File
[Config]
PixmapPath=pics/animated/worm
Description=Little Worm
Description[af]=Klein Wurm
Description[ar]=دودة صغيرة
Description[be]=Маленькі чарвячок
Description[bg]=Малкото Червейче
Description[bn]=ছোট্ট কেঁচো
Description[br]=Buzugig
Description[bs]=Mali crv
Description[ca]=Cuquet
Description[cs]=Červík
Description[cy]=Pry' Genwair Bach
Description[da]=Lille orm
Description[de]=Kleiner Wurm
Description[el]=Μικρό σκουλήκι
Description[eo]=Vermeto
Description[es]=Gusanito
Description[et]=Ussike
Description[eu]=Hartxoa
Description[fa]=کرم کوچک
Description[fi]=Pieni mato
Description[fr]=Petit ver de terre
Description[ga]=Péistín
Description[gl]=Pequeno Verme
Description[he]=תולעת קטנה
Description[hi]=नन्ही इल्ली
Description[hr]=Mali crv
Description[hu]=kukac
Description[is]=Lítill ormur
Description[it]=Vermiciattolo
Description[ja]=小さいむし
Description[km]=កូន​ដង្កូវ​តូច
Description[ko]=작은 벌레
Description[lv]=Mazais tārps
Description[mk]=Мало црвче
Description[nb]=Liten orm
Description[nds]=Lütt Worm
Description[ne]=सानो वोर्म
Description[nl]=Kleine worm
Description[nn]=Liten orm
Description[pa]=ਛੋਟਾ ਕੀੜਾ
Description[pl]=Robaczek
Description[pt]=Pequeno Verme
Description[pt_BR]=Pequeno Verme
Description[ro]=Micul vierme
Description[ru]=Маленький червячок
Description[sk]=Malý červík
Description[sl]=Mali črv
Description[sr]=Мали црв
Description[sr@Latn]=Mali crv
Description[sv]=Lilla masken
Description[ta]= சிறு புழு
Description[tg]=Кирми Майдаяк
Description[th]=หนอนตัวจิ๋ว
Description[tr]=Küçük Kurtçuk
Description[uk]=Хробачок
Description[uz]=Kichkina chuvalchang
Description[uz@cyrillic]=Кичкина чувалчанг
Description[xh]=Umbungu Omncinci
Description[zh_CN]=小虫虫
Description[zh_TW]=小蟲
About=By Bartosz Trudnowski\nMade for my wife
About[af]=Deur Bartosz Trudnowski\nMade vir my vrou
About[ar]=من Bartosz Trudnowski\nصنعته لزوجتي
About[az]=Bartosz Trudnowski tərəfindən\nHəyat yoldaşıma
About[be]=Аўтар Bartosz Trudnowski\nЗрабіў для жонкі
About[bg]=Автор Бартоз Трудновски\nПосвещава се на съпругата на автора
About[bn]=তৈরি করেছেন বার্টোজ ট্রুডনোস্কি\nআমার স্ত্রী'র জন্য বানিয়েছি
About[br]=Gant Bartosz Trudnowski\nGraet evit ma wreg
About[bs]=Autor Bartosz Trudnowski\nNapravljeno za moju ženu
About[ca]=Per Bartosz Trudnowski\nFet per a la meva dona
About[cs]=Autor Bartosz Trudnowski\nPro mou manželku
About[cy]=Gan Bartosz Trudnowski\nGwnaethwyd i fy ngwraig
About[da]=Af Bartosz Trudnowski\nLavet til min kone
About[de]=Von Bartosz Trudnowski\nFür meine Frau
About[el]=Από τον Bartosz Trudnowski\n Φτιάχτηκε για τη σύζυγό μου
About[eo]=De Bartosz Trudnowski\nFarita por mia edzino
About[es]=Por Bartosz Trudnowski\nHecho para mi esposa
About[et]=Autor: Bartosz Trudnowski\nTehtud minu abikaasale
About[eu]=Bartosz Trudnowski'k egina\nEmaztearentzat egina
About[fa]=توسط بارتز ترودنوسکی \nساخته شده برای همسرم
About[fi]=Tehnyt Bartosz Trudnowski\nTehty vaimolleni
About[fr]=Par Bartosz Trudnowski\nDéveloppé pour ma femme
About[ga]=Le Bartosz Trudnowski\nDéanta do mo bhean chéile
About[gl]=Por Bartosz Trudnowski\nFeito para a miña muller
About[he]=מאת ברטוש טרודנובסקי\nנעשה עבור אישתי
About[hi]=बार्तोज़ त्रुदनोव्स्की द्वारा\nमेरी पत्नि द्वारा बनाया हुआ
About[hr]=Autor Bartosz Trudnowski\n"Za moju suprugu."
About[hu]=Készítette: Bartosz Trudnowski\nA feleségemnek ajánlom
About[is]=By Bartosz Trudnowski\nGert fyrir elskuna mína (já, eiginkonuna)
About[it]=Di Bartosz Trudnowski\nFatto per mia moglie.
About[ja]=By Bartosz Trudnowski\n妻のために
About[km]=ដោយ Bartosz Trudnowski\nសម្រាប់ភរិយាខ្ញុំ
About[lt]=Darė Bartosz Trudnowski\nPadarytas mano žmonai
About[lv]=Autors - Bartosz Trudnowski\nIzgatavots manai sievai.
About[mk]=Од Bartosz Trudnowski\nНаправено за жена ми
About[mt]=Ta' Bartosz Trudnowski\nDedikat għall-mara tiegħi
About[nb]=Av Bartosz Trudnowski\nLaget til min kone
About[nds]=Vun Bartosz Trudnowski\nMaakt för mien Fru
About[ne]=बारटोस्ज ट्रुडनोस्कीद्वारा\nमेरी पत्नीको लागि बनाइयो
About[nl]=Door Bartosz Trudnowski\nGemaakt voor mijn vrouw
About[nn]=Av Bartosz Trudnowski\nLaga til kona mi
About[pl]=Autorstwa Bartosza Trudnowskiego\nWykonane dla mojej żony
About[pt]=De Bartosz Trudnowski\nFeito para a minha mulher
About[pt_BR]=Por Bartosz Trudnowski\nFeito para minha esposa
About[ro]=De Bartosz Trudnowski\nFăcut pentru soţia mea
About[ru]=Автор - Bartosz Trudnowski\nСделано для моей жены
About[sk]=Vytvoril Bartosz Trudnowski\nPre svoju ženu
About[sl]=Od Bartosza Trudnowskega\nNaredil za svojo ženo
About[sr]=Од Бартоша Трудновског (Bartosz Trudnowski)\нНаправљено за моју жену
About[sr@Latn]=Od Bartoša Trudnovskog (Bartosz Trudnowski)\nNapravljeno za moju ženu
About[sv]=Av Bartosz Trudnowski\nGjord för min fru
About[tg]=Бартоз Трудновскй\Барои зани ман
About[th]=โดย Bartosz Trudnowski\nสร้างจากภรรยาผมเอง
About[tr]=Bartosz Trudnowski\nEşim için yaptım
About[uk]=Автор: Bartosz Trudnowski\nЗроблено моєю жінкою
About[uz]=Bartosz Trudnovski (Bartosz Trudnowski) yaratgan\nTurmush oʻrtogʻim uchun yaratilgan.
About[uz@cyrillic]=Бартосз Трудновски (Bartosz Trudnowski) яратган\nТурмуш ўртоғим учун яратилган.
About[ven]=Nga Bartosz Trudnowski\nZwo itelwa musadzi wanga
About[xh]=Ngu Bartosz Trudnowski\nYenzelwe inkosikazi yam
About[zh_CN]=作者Bartosz Trudnowski\n为我妻子而作
About[zu]=Ngu Bartosz Trudnowski\nYenzelwe unkosikazi wami
Icon=../../preview/worm.png
Base=Base
Sequences=MoveLeft,MoveRight,Eyes,Eye,BigEyes,Angry,Wobble,Love
#Sequences=MoveLeft,MoveRight
Blur=Dig
Focus=Up
Destroy=DropOut
Sleep=Zzz
[Base]
Sequence=w-b1.png
Movement=0
Delay=2000
HotspotX=16
HotspotY=29
[Eyes]
Sequence=w-b1.png,w-b1.png,w-b1.png,w-b1.png,w-b2.png,w-b1.png,w-b2.png,w-b1.png,w-b1.png,w-b1.png,w-b1.png,w-b2.png,w-b1.png,w-b1.png,w-b1.png,w-b1.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=300,300,300,300,150,150,150,300,300,300,300,100,300,300,300,300
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
[Dig]
Sequence=w-d1.png,w-d2.png,w-d3.png,w-d4.png,w-d5.png
Movement=0,0,0,0,0
Delay=100,100,100,100,200
HotspotX=16,16,16,16,16
HotspotY=29,29,29,29,29
[Up]
Sequence=w-d5.png,w-u1.png,w-u2.png,w-u3.png,w-b1.png
Movement=0,0,0,0,0
Delay=100,100,100,100,300
HotspotX=16,16,16,16,16
HotspotY=29,29,29,29,29
[DropOut]
Sequence=w-b1.png,w-dr1.png,w-dr1.png,w-dr1.png,w-dr1.png,w-dr1.png,w-dr1.png,w-dr1.png
Movement=0,0,0,0,0,0,0,0
Delay=150,100,100,100,100,100,100,100
HotspotX=16,16,16,16,16,16,16,16
HotspotY=29,-25,-50,-100,-250,-500,-750,-1000
[Zzz]
Sequence=w-s1.png,w-s2.png,w-s3.png,w-s2.png,w-s3.png,w-s1.png
Movement=0,0,0,0,0,0
Delay=300,200,200,200,200,300
HotspotX=16,16,16,16,16,16
HotspotY=29,29,29,29,29,29
[Eye]
Sequence=w-b1.png,w-e1.png,w=b1.png
Movement=0,0,0
Delay=300,300,300
HotspotX=16,16,16
HotspotY=29,29,29
[MoveLeft]
Sequence=w-ml0.png,w-ml1.png,w-ml2.png,w-ml3.png,w-ml2.png,w-ml1.png,w-ml2.png,w-ml3.png,w-ml2.png,w-ml1.png,w-ml0.png
Movement=0,0,0,0,-4,-3,0,0,-4,-3,0
Delay=100,200,200,200,200,200,200,200,200,200,100
HotspotX=16,26,26,26,26,26,26,26,26,26,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29
[MoveRight]
Sequence=w-mr0.png,w-mr1.png,w-mr2.png,w-mr3.png,w-mr2.png,w-mr1.png,w-mr2.png,w-mr3.png,w-mr2.png,w-mr1.png,w-mr0.png
Movement=0,0,0,0,4,3,0,0,4,3,0
Delay=100,200,200,200,200,200,200,200,200,200,100
HotspotX=16,6,6,6,6,6,6,6,6,6,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29
[BigEyes]
Sequence=w-b1.png,w-be1.png,w-be2.png,w-be3.png,w-be4.png,w-be3.png,w-be2.png,w-be1.png,w-b1.png
Movement=0,0,0,0,0,0,0,0,0
Delay=300,150,150,200,300,200,150,150,300
HotspotX=16,16,16,16,16,16,16,16,16
HotspotY=29,29,29,29,29,29,29,29,29
[Angry]
Sequence=w-a1.png,w-a2.png,w-a1.png,w-a2.png,w-a1.png,w-a2.png
Movement=0,0,0,0,0,0
Delay=150,150,150,150,150,150
HotspotX=16,16,16,16,16,16
HotspotY=29,29,29,29,29,29
[Wobble]
Sequence=w-b1.png,w-wl1.png,w-wl2.png,w-wl1.png,w-b1.png,w-wl1.png,w-wl2.png,w-wl1.png,w-b1.png,w-wr1.png,w-wr2.png,w-wr1.png,w-b1.png,w-wr1.png,w-wr2.png,w-wr1.png,w-b1.png
Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Delay=300,150,150,150,150,150,150,150,300,150,150,150,150,150,150,150,300
HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
HotspotY=29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
[Love]
Sequence=w-l1.png,w-l2.png,w-l3.png,w-l1.png,w-l2.png,w-l3.png
Movement=0,0,0,0,0,0
Delay=200,200,200,200,200,200
HotspotX=16,16,16,16,16,16
HotspotY=29,29,29,29,29,29

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

@ -0,0 +1,70 @@
/* main.cpp
**
** Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
**
*/
/*
** 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 in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-devel@kde.org
*/
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <kuniqueapplication.h>
#include <klocale.h>
#include <kcmdlineargs.h>
#include <kaboutdata.h>
#include <dcopclient.h>
#include "version.h"
#include "amor.h"
static const char description[] = I18N_NOOP("KDE creature for your desktop");
int main(int argc, char *argv[])
{
KAboutData aboutData( "amor", I18N_NOOP("amor"),
AMOR_VERSION, description, KAboutData::License_GPL,
"(c) 1999, Martin R. Jones");
aboutData.addAuthor("Martin R. Jones",0, "mjones@kde.org");
aboutData.addAuthor("Gerardo Puga", I18N_NOOP("Current maintainer"), "gpuga@gioia.ing.unlp.edu.ar");
KCmdLineArgs::init( argc, argv, &aboutData );
if (!KUniqueApplication::start()) {
fprintf(stderr, "%s is already running!\n", aboutData.appName());
exit(0);
}
KUniqueApplication app;
// session management
AmorSessionWidget *sessionWidget = new AmorSessionWidget;
app.setTopWidget(sessionWidget);
new Amor();
app.dcopClient()->setDefaultObject( "AmorIface" );
return app.exec();
}

@ -0,0 +1,45 @@
# little script to extract the text from the tips file
# and output it, so xgettext can add the tips to the po file
#
# 2000 by Matthias Kiefer <matthias.kiefer@gmx.de>
open(FILE,"<data/tips-en") || die "unable to open tips file";
$inTip=0;
$tip="";
while(<FILE>)
{
chomp;
# tip ends with %
if(!/^%/)
{
# replace \ with \\
s/\\/\\\\/g;
# replace " with \"
s/"/\\"/g;
if($inTip != 0)
{
$tip=$tip."\n\"$_\\n\"";
}
else
{
$inTip=1;
$tip="\"$_\\n\"";
}
next;
}
elsif($inTip != 0)
{
# remove last newline
$tip =~ s/\\n\"$/\"/g;
print "i18n(\n", $tip, "\n);\n";
$inTip=0;
}
}
close(FILE);

@ -0,0 +1 @@
#define AMOR_VERSION "2.3"

@ -0,0 +1,6 @@
#MIN_CONFIG
KDE_ENABLE_HIDDEN_VISIBILITY
CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS"
AC_CHECK_SETENV
AC_CHECK_UNSETENV
AC_CHECK_INITGROUPS

@ -0,0 +1,5 @@
KDE_LANG = en
KDE_DOCS = AUTO
SUBDIRS = $(AUTODIRS)

@ -0,0 +1,5 @@
KDE_LANG = en
KDE_DOCS = AUTO
KDE_MANS = AUTO

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

@ -0,0 +1,318 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY kappname "&amor;">
<!ENTITY package "kdetoys">
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE">
]>
<book lang="&language;">
<bookinfo>
<title>The &amor; Handbook</title>
<authorgroup>
<author>
&Karl.Garrison; &Karl.Garrison.mail;
</author>
</authorgroup>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
<copyright>
<year>2001</year>
<holder>&Karl.Garrison;</holder>
</copyright>
<legalnotice>&FDLNotice;</legalnotice>
<date>2003-09-16</date>
<releaseinfo>2.2</releaseinfo>
<abstract>
<para>
&amor; is a small animation which sits on top of your active window.
</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>kdetoys</keyword>
<keyword>amor</keyword>
<keyword>helper</keyword>
<keyword>assistant</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title>Introduction</title>
<sect1 id="whats-amor">
<title>What's &amor;?</title>
<para>
&amor; is an acronym which stands for Amusing Misuse of Resources. It is
actually an animation which sits on top of your active window. In its default
configuration, &amor; takes the form of a yellow spot which performs many
tricks. &amor; also has many different themes which change the appearance
and behavior of the animation.
</para>
<note><para>Since &amor; works with the &kde; window manager &kwin;, the
application will only work from within &kde;. It is possible that &amor;
would work from within another &kde;-compliant window manager, but none are
known to work at the time of this writing.</para></note>
</sect1>
</chapter>
<chapter id="configuration">
<title>Configuration</title>
<sect1 id="configuring-amor">
<title>Configuring &amor;</title>
<para>To configure &amor;, click on the animation using your &RMB;. A menu
will appear containing three items:
<guimenuitem>Options...</guimenuitem>,
<guimenuitem>About...</guimenuitem>, and
<guimenuitem>Quit</guimenuitem>. Choose
<guimenuitem>Options...</guimenuitem> to configure &amor;
</para>
</sect1>
<sect1 id="general-options">
<title>General Options</title>
<para>The following settings for &amor; can be changed from the Options
dialog:</para>
<variablelist>
<varlistentry><term><guilabel>Theme</guilabel></term>
<listitem><para>This determines the appearance and behavior of &amor;.
Themes are described in the next section.</para></listitem>
</varlistentry>
<varlistentry><term><guilabel>Offset</guilabel></term>
<listitem><para>This slider controls where the animation appears in
relation to the top of the active window. The default middle setting will
place the animation right above the window title bar, whereas setting the
slider all the way to the top or bottom will result in the animation
appearing a fair distance above or below the title bar, respectively.</para>
<tip><para>Setting this slider to a lower setting will allow the
animation to be visible even when the active window is maximized.</para>
</tip></listitem>
</varlistentry>
<varlistentry><term><guilabel>Always on top</guilabel></term>
<listitem><para>Checking this option will cause the animation to always
appear in front of any existing windows on the screen, including the
panel.</para></listitem>
</varlistentry>
<varlistentry><term><guilabel>Show random tips</guilabel></term>
<listitem><para>If checked, the animation will display various
&kde;-related tips at random intervals.</para></listitem>
</varlistentry>
<varlistentry><term><guilabel>Allow application tips</guilabel></term>
<listitem><para>Any &kde; application can be designed to display helpful
tips via &amor;. If this option is checked, and an appropriate
application is the active window, the animation will display tips for that
application.</para>
<note><para>At the time of this writing, no &kde; applications make use of
this functionality.</para></note></listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="amor-themes">
<title>&amor; Themes</title>
<para>&amor; comes with many built-in themes, which change the appearance and
behavior of the animation. In addition, it is possible to create new
&amor; themes. The built-in themes for &amor; are described in the table
below</para>
<table>
<title>Available &amor; Themes</title>
<tgroup cols="2">
<thead>
<row>
<entry>Theme</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="spot.png"/>
</imageobject>
<textobject><para>Multi-talented Spot</para></textobject>
<caption><para>Multi-talented Spot</para></caption>
</mediaobject></entry>
<entry><para>This is the default theme for &amor;, and also the one with
the most <quote>tricks</quote>. This theme was created by &Martin.R.Jones;. The jet-pack, beaming, and fire animations were contributed by
<personname><firstname>Mark</firstname><surname>Grant</surname></personname>.</para></entry>
</row>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="ghost.png"/>
</imageobject>
<textobject><para>Spooky Ghost</para></textobject>
<caption><para>Spooky Ghost</para></caption>
</mediaobject></entry>
<entry><para>A ghost theme based-on the &kde;
<application>ghostview</application> icon. Spooky Ghost was created by
&Martin.R.Jones;.</para></entry>
</row>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="eyes.png"/>
</imageobject>
<textobject><para>Crazy Eyes</para></textobject>
<caption><para>Crazy Eyes</para></caption>
</mediaobject></entry>
<entry><para>This theme consists of a moving pair of eyes, and was created
by <personname><firstname>Jean-Claude</firstname><surname>Dumas</surname></personname>.</para></entry>
</row>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="bonhomme.png"/>
</imageobject>
<textobject><para>Bonhomme</para></textobject>
<caption><para>Bonhomme</para></caption>
</mediaobject></entry>
<entry><para>A stick-figure animation, created by <personname><firstname>Jean-Claude</firstname><surname>Dumas</surname></personname>.</para></entry>
</row>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="neko.png"/>
</imageobject>
<textobject><para>Neko</para></textobject>
<caption><para>Neko</para></caption>
</mediaobject></entry>
<entry><para>Neko is a cat theme by <personname><firstname>Chris</firstname><surname>Spiegel</surname></personname>. The graphics are
originally from <application>Oneko</application>, which was written by
<personname><firstname>Masayuki</firstname><surname>Koba</surname></personname>.</para>
<note><para><application>Oneko</application> is a small application which
features a cat chasing the mouse cursor. The application appears to no
longer be maintained, but the
<ulink url="ftp://sunsite.unc.edu/pub/Linux/X11/demos/oneko-1.1b.tar.gz">
source code</ulink> from the last version is still
available.</para></note></entry>
</row>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="pingus.png"/>
</imageobject>
<textobject><para>Tux</para></textobject>
<caption><para>Tux</para></caption>
</mediaobject></entry>
<entry><para>This theme features Tux, the &Linux; mascot. The actual
graphics come from a <application>Lemmings</application>-style game
called <ulink url="http://pingus.seul.org/">
<application>Pingus</application></ulink>. The Tux theme was created by
<personname><firstname>Frank</firstname><surname>Pieczynski</surname></personname>.</para></entry>
</row>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="worm.png"/>
</imageobject>
<textobject><para>Little Worm</para></textobject>
<caption><para>Little Worm</para></caption>
</mediaobject></entry>
<entry><para>A small inchworm theme. Created by <personname><firstname>Bartosz</firstname><surname>Trudnowski</surname></personname> for
his wife.</para></entry>
</row>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="billy.png"/>
</imageobject>
<textobject><para>Little Billy</para></textobject>
<caption><para>Little Billy</para></caption>
</mediaobject></entry>
<entry><para>A static image taken from the game
<ulink url="http://www.xbill.org/"><application>XBill</application>
</ulink>.</para></entry>
</row>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="bsd.png"/>
</imageobject>
<textobject><para>BSD Mascot</para></textobject>
<caption><para>BSD Mascot</para></caption>
</mediaobject></entry>
<entry><para>A static image of Beastie, the FreeBSD daemon.</para></entry>
</row>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="tux.png"/>
</imageobject>
<textobject><para>Unanimated Tux</para></textobject>
<caption><para>Unanimated Tux</para></caption>
</mediaobject></entry>
<entry><para>An unanimated version of the Tux theme.</para></entry>
</row>
<row>
<entry><mediaobject>
<imageobject>
<imagedata format="PNG" fileref="tao.png"/>
</imageobject>
<textobject><para>Tao</para></textobject>
<caption><para>Tao</para></caption>
</mediaobject></entry>
<entry><para>The Tao theme is an animated Yin Yang symbol. This theme was
created by <personname><firstname>Daniel</firstname><surname>Pfeiffer</surname></personname> <email>occitan@esperanto.org</email>, and was
inspired by his Tai Chi practice.</para></entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
</chapter>
<chapter id="credits">
<title>Credits and License</title>
<para>&amor;</para>
<para>Program Copyright &copy; 1999-2001 &Martin.R.Jones;
&Martin.R.Jones.mail;</para>
<para>Documentation Copyright &copy; 2001 &Karl.Garrison;
&Karl.Garrison.mail;</para>
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
&underFDL;
&underGPL;
</chapter>
&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
// vim:ts=0:sw=2:tw=78:noet
-->

@ -0,0 +1,72 @@
<?xml version="1.0" ?>
<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!-- <!ENTITY kdeoptions SYSTEM "kdeoptions.docbook"> -->
<!-- <!ENTITY qtoptions SYSTEM "qtoptions.docbook"> -->
<!ENTITY % English "INCLUDE">
]>
<refentry lang="&language;">
<refentryinfo>
<date>March 7, 2003</date>
</refentryinfo>
<refmeta>
<refentrytitle><command>amor</command></refentrytitle>
<manvolnum>6</manvolnum>
</refmeta>
<refnamediv>
<refname><command>amor</command></refname>
<refpurpose>A &kde; creature for your desktop</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>amor</command>
<group><option>KDE Generic Options</option></group>
<group><option>Qt Generic Options</option></group>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><acronym>AMOR</acronym> stands for <quote>Amusing Misuse Of
Resources</quote>. It provides several different characters who
prance around your X screen doing tricks and giving you tips.</para>
<para>&amor; is part of the &kde; toys package.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>&amor; is configured graphically, and does not have any
commandline options other than the standard &kde; and &Qt;
options.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>Within &kde; you can enter
<userinput>help:/amor</userinput> in &konqueror; to see the
comprehensive user manual.</para>
</refsect1>
<refsect1>
<title>Bugs</title>
<para>&amor; currently only works with the &kwin; window manager.</para>
</refsect1>
<refsect1>
<title>Authors</title>
<para>&amor; was written by <personname><firstname>Martin</firstname><othername>R.</othername><surname>Jones</surname></personname> <email>mjones@kde.org</email>.
This manual page was prepared by <personname><firstname>Ben</firstname><surname>Burton</surname></personname> <email>bab@debian.org</email> for the Debian GNU/Linux system (but may be used by others).</para>
</refsect1>
</refentry>

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 956 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B

@ -0,0 +1,4 @@
KDE_LANG = en
KDE_DOCS = AUTO

@ -0,0 +1,74 @@
From rabaca@nova.ov.ufrj.br Fri Oct 20 23:12:11 2000
Return-Path: <rabaca@nova.ov.ufrj.br>
Delivered-To: coolo@master.kde.org
Received: (qmail 22568 invoked by uid 1055); 20 Oct 2000 21:12:11 -0000
Delivered-To: kde.org-coolo@kde.org
Received: (qmail 22489 invoked from network); 20 Oct 2000 21:12:07 -0000
Received: from nova.ov.ufrj.br (root@146.164.112.17)
by max.tat.physik.uni-tuebingen.de with SMTP; 20 Oct 2000 21:12:07 -0000
Received: from localhost (localhost [[UNIX: localhost]])
by nova.ov.ufrj.br (8.9.3/8.9.3) id TAA09140
for coolo@kde.org; Fri, 20 Oct 2000 19:14:00 -0200
From: Carlos Roberto Raba<E7>a <rabaca@nova.ov.ufrj.br>
Reply-To: rabaca@nova.ov.ufrj.br
Organization: Observatorio do Valongo - UFRJ
To: Stephan Kulow <coolo@kde.org>
Subject: Re: Moon tool
Date: Fri, 20 Oct 2000 17:10:39 -0200
X-Mailer: KMail [version 1.0.29]
Content-Type: text/plain
References: <00102016004500.08951@nova.ov.ufrj.br> <39F09247.5715C35D@kde.org>
In-Reply-To: <39F09247.5715C35D@kde.org>
MIME-Version: 1.0
Message-Id: <00102019130700.09050@nova.ov.ufrj.br>
Content-Transfer-Encoding: 8bit
Status: O
X-Status:
Stephan,
> In KDE2 I implemented free choice view angle, so I could also slide
> it some degrees off to see it like I see it here :)
It is nice to hear that! Unfortunately, I still use KDE 1.1.2.... By the way,
when is the final release o 2.0?
> But if you're an expert, I would like your advise on the correct
> terms. Where on the earth you see the moon in the the default view
> you can see on web pages etc.?
As you know, the moon keeps always the same face turned to earth (the so called
near side). This is a composition of its period of orbital motion and rotation:
they are approximately the same. The moon's orbit is inclined with respect to
the equator by (only) 5 degrees, and for our purposes, keeps the polar
orientation in the sky unchanged. This means that the angle that you
see the moon in the sky changes by a composition of two factors only: 1)
latitude of the observer, and 2) time of the day that you look at the moon. If
you look at the moon over many hours, the change of orientation in the sky is
moon's orbital plane is close to the equator (as I said before) the discussion
of orientation looses any meaning. At these positions, the passage by the
meridian happens very close to the top of your head. So, I can be facing east
and move my head up to see the moon, or I can be facing west and move my head
up. Which rotation should I addopt? That is why I told you to use 0 or 180
degrees. Otherwise, you would need to incorporate in your code many otherif he
relations, including the latitude of the observer.he will see the first quarter
moon as a C and the last quater moon as a D (see
> The current kmoon uses the pictures of this site:l) when the moon is over
> http://timbeauchamp.tripod.com/moon/, but a (german) colleague ofes over his
> yours pointed out that the images are mirrored horizontally, son is reversed.
> we corrected that (the larger craters appear on the left ontor. Since the
> the moon I see in the sky, while they are right on the web).
My colleague is correct. The east-west sides in the pictures are wrong, so you
should flip them sideways. For an observer in the northern hemisthere this is
all you need to do. For an observer in the southern hemisphere, you need to
rotate this new set of images by 180 degrees. Keep in mind that in the sky if
north is up east is to the left, if south is up east is to the right. You can
easily see this if you lay down ;-/ on the floor with you head/legs pointing to
the north/south line. Now, try to point your left arm to the geographic
east while facing up.
I hope this helps you. If you like more info, it will be a pleasure to
help. Best wishes,
Carlos

@ -0,0 +1,131 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY kappname "&kmoon;">
<!ENTITY package "kdetoys">
<!ENTITY % English "INCLUDE">
<!ENTITY % addindex "IGNORE">
]>
<book lang="&language;">
<bookinfo>
<title>The &kmoon; Handbook</title>
<authorgroup>
<author>
<personname>
<firstname>Pam</firstname>
<othername></othername>
<surname>Roberts</surname>
</personname>
<email>pamroberts@blueyonde.co.uk</email>
</author>
</authorgroup>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
<copyright>
<year>2003</year>
<holder>Pam Roberts</holder>
</copyright>
<!-- Translators: put here the copyright notice of the translation -->
<legalnotice>&FDLNotice;</legalnotice>
<date>2003-09-16</date>
<releaseinfo>1.0</releaseinfo>
<abstract>
<para>
&kmoon; is an applet that shows the current phase of the moon.
</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>kdetoys</keyword>
<keyword>kmoon</keyword>
<keyword>moon phase</keyword>
</keywordset>
</bookinfo>
<chapter id="using">
<title>Using &kmoon;</title>
<para>&kmoon; is a little applet that docks into the System Tray and shows an
image of the current phase of the moon. Hovering the mouse cursor over the
image brings up a tooltip to display more information.</para>
<para>&kmoon; can be added to the panel by &RMB; clicking on an empty space
on the panel and choosing <menuchoice><guimenu>Add to
Panel</guimenu><guisubmenu>Applet</guisubmenu><guimenuitem>Moon Phase
Display</guimenuitem></menuchoice>. If you can't find an empty space, you
can access the panel menu from an &RMB; click on any existing applet or
icon.</para>
<para>To close &kmoon; <mousebutton>right</mousebutton> click on the applet
handle beside the image and choose <guimenuitem>Quit</guimenuitem>.</para>
<sect1 id="settings">
<title>Settings</title>
<para>If you <mousebutton>right</mousebutton> click on the image and choose
<guimenuitem>Settings...</guimenuitem> a small dialog box will appear that
lets you adjust the image to suit the latitude and hemisphere you are living
in.</para>
</sect1>
</chapter>
<chapter id="credits">
<title>Credits and License</title>
<para>
&kmoon;
</para>
<para>
Program copyright 1998,2000 &Stephan.Kulow; &Stephan.Kulow.mail;
</para>
<para>
Contributors:
<itemizedlist>
<listitem><para>Lunar code by Chris Osburn <email>chris@speakeasy.org</email></para>
</listitem>
<listitem><para>Moon graphics by Tom Beauchamp <email>timb@googol.com</email></para>
</listitem>
</itemizedlist>
</para>
<para>
Documentation copyright 2003 Pam Roberts <email>pamroberts@blueyonder.co.uk</email>
</para>
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
&underFDL;
&underGPL;
</chapter>
<appendix id="installation">
<title>Installation</title>
<para>&kmoon; is part of &kde;'s &package; package.</para>
<para>Most &Linux; / &UNIX; distributions that include &kde; will include &package; as an option to be installed if the user wishes.</para>
<para>&kmoon; and the &package; package may also be compiled from source code.
Visit <ulink url="http://www.kde.org"> http://www.kde.org</ulink> for instructions on how to download, compile and install &kde; programs.</para>
</appendix>
&documentation.index;
</book>
<!--
Local Variables:
mode: xml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
vim:tabstop=2:shiftwidth=2:expandtab
-->

@ -0,0 +1,4 @@
KDE_LANG = en
KDE_DOCS = AUTO

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

@ -0,0 +1,225 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY kappname "&kodometer;">
<!ENTITY package "kdetoys">
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE">
]>
<book lang="&language;">
<bookinfo>
<title>The &kodometer; Handbook</title>
<authorgroup>
<author>
&Armen.Nakashian; &Armen.Nakashian.mail;
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<copyright>
<year>1999</year><year>2001</year>
<holder>&Armen.Nakashian;</holder>
</copyright>
<legalnotice>&FDLNotice;</legalnotice>
<date>2003-09-17</date>
<releaseinfo>3.2</releaseinfo>
<abstract>
<para>&kodometer; is a little gadget to measure your desktop mileage</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>KOdometer</keyword>
<keyword>odometer</keyword>
<keyword>mouse</keyword>
<keyword>mileage</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title>Introduction</title>
<sect1 id="whats-kodo">
<title>What is &kodometer;?</title>
<para>
&kodometer; <emphasis>measures your desktop mileage</emphasis>. It tracks the
movement of your mouse pointer across your desktop, and renders it in
inches/feet/miles! It can do cm/meters/km too. The most exciting
feature is the tripometer, and its utter uselessness.</para>
<note>
<para>The next version will be USEFUL!</para>
</note>
</sect1>
</chapter>
<chapter id="onscreen-operation">
<title>On screen operation</title>
<screenshot>
<screeninfo>A labeled screen-shot of &kodometer; in action</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="guide.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>A labeled screen-shot of &kodometer; in action</phrase></textobject>
<caption><para>A screen shot. Note the fashionable lack of a
titlebar.</para></caption>
</mediaobject>
</screenshot>
<para>
The <guilabel>Odometer</guilabel> is the total distance traveled by the
mouse since the last odometer reset. The
<guilabel>Tripometer</guilabel> is the distance traveled by the mouse
since it last stopped moving.
</para>
<sect1 id="menu-options">
<title>Menu Options</title>
<para>
If you've gotten this far, you probably already know that there is a
&RMB; mouse button context menu on &kodometer;, which contains a number of
choices.
</para>
<variablelist>
<varlistentry>
<term><guimenuitem>Enable</guimenuitem></term>
<listitem>
<para>
Toggle mileage tracking. This is good if you want to cheat on your
mileage. <emphasis>Note: This is illegal in most countries</emphasis>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guimenuitem>Metric Display</guimenuitem></term>
<listitem>
<para>
Because &kodometer; was written by an American, it obnoxiously assumes you
want to use Inches/Feet/Miles for measurement. If you come from some
more modern country in Europe, to use metric measurements, turn on this
option.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guimenuitem>Auto Reset Trip</guimenuitem></term>
<listitem>
<para>
This option will cause &kodometer; to set the Tripometer back to zero every
time it starts up. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><guimenuitem>Reset Trip</guimenuitem></term>
<listitem>
<para>
Set the tripometer to zero.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guimenuitem>Reset Odometer</guimenuitem></term>
<listitem>
<para>
Set the odometer back to zero. <emphasis>You might get in trouble for
this!</emphasis></para>
</listitem>
</varlistentry>
<varlistentry>
<term><guimenuitem>About Mousepedometa</guimenuitem></term>
<listitem>
<para>
Pops up a little dialog box with information on who to blame for the
program.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guimenuitem>Help</guimenuitem></term>
<listitem>
<para>
This menu entry opens up the &kodometer; help - this very document.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guimenuitem>Quit</guimenuitem></term>
<listitem>
<para>
Quit &kodometer;
</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
</chapter>
<chapter id="how-it-works">
<title>How It Works</title>
<para>&X-Window; displays are usually configured with a screen-size
variable. That is, how big your screen is in real-world measurements,
not pixels. &kodometer; grabs this value and uses it come up with a
&dpi; (dots per inch) value for your display, and thus
can relate the number of pixels you've traversed to the number of inches
the pointer appears to have moved on the screen.</para>
<para>But lets be real! Its horribly <emphasis>inaccurate!</emphasis>
&kodometer; makes no pretense of being even remotely accurate. In fact,
someone has measured the movement of their mouse across the screen with
a ruler, and found that the distance algorithm is almost 25&percnt; off!
The original author's response to this complaint was <quote>who
cares?</quote>.</para>
</chapter>
<chapter id="license-and-credits">
<title>Credits and Licenses</title>
<para>&kodometer; Copyright &copy; 1998-2001, &Armen.Nakashian;.</para>
<para>Documentation copyright 1998 &Armen.Nakashian;, with small updates
and markup cleanup for &kde; 2.2, &Lauri.Watts; &Lauri.Watts.mail;
</para>
&underFDL;
&underGPL;
</chapter>
&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
// vim:ts=0:sw=2:tw=78:noet
-->

@ -0,0 +1,4 @@
KDE_LANG = en
KDE_DOCS = AUTO

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@ -0,0 +1,148 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY kappname "&kteatime;">
<!ENTITY package "kdetoys">
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE">
]>
<book lang="&language;">
<bookinfo>
<title>The &kteatime; Handbook</title>
<authorgroup>
<author>
&Michael.Korman; &Michael.Korman.mail;
</author>
<othercredit role="developer">
&Matthias.Hoelzer-Kluepfel; &Matthias.Hoelzer-Kluepfel.mail;
<!-- <contrib>Developer</contrib> -->
</othercredit>
<othercredit role="reviewer">
&Lauri.Watts; &Lauri.Watts.mail;
<!-- <contrib>Reviewer</contrib> -->
</othercredit>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<copyright>
<year>2000</year>
<holder>&Michael.Korman;</holder>
</copyright>
<legalnotice>&FDLNotice;</legalnotice>
<date>2006-10-25</date>
<releaseinfo>1.1.0</releaseinfo>
<abstract>
<para>This Handbook describes &kteatime;, the &kde; Tea Cooker.</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>kdetoys</keyword>
<keyword>kteatime</keyword>
<keyword>tea</keyword>
<keyword>cooker</keyword>
<keyword>timer</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title>Introduction</title>
<sect1 id="whats-kteatime">
<title>What's &kteatime;?</title>
<para>&kteatime; is a handy timer for steeping tea. No longer will you have to guess at how long it takes for your tea to be ready. Simply select the type of tea you have, and it will alert you when the tea is ready to drink.</para>
</sect1>
</chapter>
<chapter id="how-to-use">
<title>How to Use &kteatime;</title>
<para>When you start up &kteatime;, it will automatically dock itself in your panel. To access the menu, right click on the docked icon. This will present a list of options which are covered in more detail in the next chapter.</para>
<sect1 id="timing-your-tea">
<title>Timing Your Tea</title>
<para>Upon starting, the panel icon will be that of an empty tea mug. If you click on the mug and select your tea, the icon will change to a filled mug. After the specified time, the tea will be finished, and a suitable message box will be shown. At this point, you can close the message box by clicking on it and reset the timer by clicking on the icon. The mug will be shown as empty again.</para>
<note><para>The timer should only be reset by those who really enjoy tea.</para></note>
</sect1>
</chapter>
<chapter id="menu-options">
<title>Menu Options</title>
<para>The following section describes the menu options that are available in &kteatime;.</para>
<sect1 id="select-your-tea">
<title>Select Your Tea</title>
<para>Clicking on the icon with the &RMB; will bring up a menu. At the top of the menu there are three menu items. Here, you can select what kind of tea you are preparing to drink. There are: <guimenuitem>Black Tea</guimenuitem>, <guimenuitem>Earl Grey</guimenuitem>, and <guimenuitem>Fruit Tea</guimenuitem>. These teas are preconfigured with a default time. Many people have complained that the times are not correct. Please be aware that the amount of time it takes to steep a cup of tea is based on personal preference. The times chosen are approximations. If you read on, you will learn how to change or delete these predefined times and to set your own time. A quick-and-easy way to set a custom time is to choose <guimenuitem>Anonymous...</guimenuitem> from the menu.</para>
</sect1>
<sect1 id="start">
<title>Start</title>
<para>This menu item will start the tea timer for the tea marked above. As confirmation that you have indeed selected <guimenuitem>Start</guimenuitem>, the panel icon will change into a filled mug.</para></sect1>
<sect1 id="configure">
<title><guimenuitem>Configure</guimenuitem></title>
<para>This menu item opens up the configuration dialog box. A screenshot is shown below:</para>
<screenshot>
<screeninfo>The &kteatime; configuration dialog box.</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="config.png" format="PNG"/></imageobject>
<textobject><phrase>The &kteatime; configuration dialog
box.</phrase></textobject>
</mediaobject>
</screenshot>
<para>As shown in the picture, you may add new entries for other tea or change names, times and the order of existing entries. This is useful if you are brewing a cup of tea that is not on the list or if you do not agree with the predefined times. To edit one entry, mark it in the <guilabel>Tea List</guilabel> on the left and change the values in the <guilabel>Tea Properties</guilabel> on the right.</para>
<para>The box below is the <guilabel>Action</guilabel> field. Here you can define an action that will be executed when the time is up. The button <guibutton>Configure Events...</guibutton> brings up the &kde; Notification Settings for &kteatime;. The <guilabel>Event</guilabel> check box below enables the event selected in the &kde; Notification Settings. If <guilabel>Popup</guilabel> is selected, a message box will appear alerting you to the fact that your tea is ready. The third check box can hold any valid system command. Probably, you will want to leave it blank.</para>
<para>If you enable the check box labeled <guilabel>Visualize progress in icon tray</guilabel>, the progress will be shown as a little animated pie chart inside the icon.</para>
</sect1>
</chapter>
<chapter id="credits">
<title>Credits</title>
<para>&kteatime; Copyright &copy; 1998-1999 by
&Matthias.Hoelzer-Kluepfel; &Matthias.Hoelzer-Kluepfel.mail;
</para>
<para>Documentation by &Michael.Korman; &Michael.Korman.mail;</para>
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
&underFDL; <!-- FDL: do not remove -->
&underGPL; <!-- GPL License -->
</chapter>
&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
// vim:ts=2:sw=2:tw=78:noet
-->

@ -0,0 +1,4 @@
KDE_LANG = en
KDE_DOCS = AUTO

@ -0,0 +1,260 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY kweather "<application>kweather</application>">
<!ENTITY package "kdetoys">
<!ENTITY % English "INCLUDE">
<!ENTITY % addindex "IGNORE">
]>
<book lang="&language;">
<bookinfo>
<title>The KWeather Handbook</title>
<authorgroup>
<author>
<firstname></firstname>
<othername></othername>
<surname></surname>
<affiliation>
<address><email></email></address>
</affiliation>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<legalnotice>&GPLNotice;</legalnotice>
<date>2004-05-31</date>
<releaseinfo>3.00.00</releaseinfo>
<abstract>
<para>
KWeather is part of the kdetoys package.
</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>KWeather</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title>Introduction</title>
<para>KWeather is an application that provides both a panel icon,
allowing you to watch the weather as reported by a local weather
station, and providing a weather service that can track multiple
weather stations and provide this information to other
applications including &konqueror;'s sidebar and &kontact;'s
summary page.</para>
</chapter>
<chapter id="adding-applet">
<title>Using KWeather as a Panel Applet</title>
<para>&RMB; click on an empty space in the panel and choose
<menuchoice><guimenu>Add</guimenu><guisubmenu>Applet</guisubmenu>
<guimenuitem>KWeather</guimenuitem></menuchoice></para>
<para>A configuration dialog will open up. Initially the only
configuration required to make KWeather work is the <guilabel>ICAO
location code:</guilabel>.</para>
<para>This is a four character code used by the weather reporting
service to uniquely identify weather stations around the world.</para>
<para>As it's unlikely that most people will happen to know this
directly, there is a link to a search engine where you can look it
up.</para>
<note><para>While the weather stations available are fairly
comprehensive, not every town in every country will be represented,
simply because not every town has an appropriate weather station. If
your own town is not represented, you should choose the one nearest
you. Since flying planes safely requires accurate weather data, most
towns with an airport will be in the list, so a good bet
is to look for the nearest airport to you.</para></note>
<para>At this point, you can press the <guibutton>OK</guibutton> button
and the dialog will close. You will now have an icon displaying the
current weather graphically on your panel. Clicking it once will open
a window that shows the weather in detail.</para>
<para>Further configuration is described in the next chapter.</para>
</chapter>
<chapter id="configuring-kweather">
<title>Configuring KWeather</title>
<sect1 id="display">
<title>Display</title>
<variablelist>
<varlistentry>
<term><guilabel>Weather Station Options</guilabel></term>
<listitem>
<variablelist>
<varlistentry>
<term><guilabel>ICAO location code:</guilabel></term>
<listitem><para>ICAO stands for the International Civil Aviation
Organization. The ICAO location code is a four character
alphanumeric code that uniquely identifies airports worldwide. The first
two letters of the ICAO code ususally identify the coutry. However, codes for
airports in the United States usually start with "K", followed by a three
character IATA (International Air Transport Assocation) code. For example,
KORD is the ICAO code for Ohare International Airport in Chicago, Illinois.
If you don't know the ICAO code for the airport nearest to you, you can click
on the link labeled <guilabel>Lookup Your ICAO Code</guilabel> to use a web based
search engine to find it.</para></listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Panel Display Options</guilabel></term>
<listitem>
<variablelist>
<varlistentry>
<term><guilabel>Show icon only</guilabel></term>
<term><guilabel>Show icon and temperature</guilabel></term>
<term><guilabel>Show icon, temperature, wind and pressure information</guilabel></term>
<listitem><para>You can choose here if the temperature should be
displayed beside the icon, or if the current wind speed, direction, and
air pressure are also displayed.</para>
<para>The icon is always shown.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Logging Options</guilabel></term>
<listitem>
<variablelist>
<varlistentry>
<term><guilabel>Enable logging</guilabel></term>
<listitem><para>By default KWeather does not retain old weather
information, and each time it updates the weather the old information
is discarded. If you wish instead to keep a record of the weather,
enable this option. Then, each time the weather is checked, KWeather
will append a new line to the log file containing the current weather
conditions in comma separated value form. The information written
will be the date, wind speed and direction, temperature, pressure, cover,
visibility, and "current weather".</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Log file</guilabel></term>
<listitem><para>If you have enabled the <guilabel>Enable
logging</guilabel> check box, this option will become available. Enter
or browse to the location you would like KWeather to keep it's log
file.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="weather-service">
<title><guilabel>Weather Service</guilabel></title>
<variablelist>
<varlistentry>
<term><guilabel>Station Manager</guilabel></term>
<listitem><para></para></listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Update All Stations</guibutton></term>
<listitem><para>Update all the listed stations
immediately.</para></listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Exit Weather Service</guibutton></term>
<listitem><para>Stop fetching weather updates for all
listed stations, and stop providing weather
information to the &konqueror; sidebar and &kontact;</para></listitem>
</varlistentry> </variablelist> </sect1>
</chapter>
<chapter id="kweather-interfaces">
<title>KWeather Interfaces</title>
<para>While the most obvious KWeather interface is the panel icon,
there are several other places where you can access KWeather's
information. These are particularly useful if you need to watch
multiple weather stations. While &kweather; allows you to track
multiple weather stations, the panel icon displays only one at a
time.</para>
<para>These additional services are plug-ins to their respective
applications, and not provided with KWeather itself.</para>
<!-- FIXME: write some stuff and show some screenies of the konq and
kontact plugins -->
</chapter>
<chapter id="credits-and-licenses">
<title>Credits and Licenses</title>
<para>KWeather copyright &copy; Ian Reinhart Geiser
<email>geiseri@users.sourceforge.net</email></para>
<variablelist>
<title>Contributors</title>
<varlistentry><term>Will Andrews
<email>wca@users.sourceforge.net</email></term>
<listitem><para>Fixes for BSD port</para></listitem>
</varlistentry>
<varlistentry>
<term>Ben Burton <email>benb@acm.org</email></term>
<listitem><para>Debian fixes</para></listitem>
</varlistentry>
<varlistentry>
<term>Otto Bruggeman <email>bruggie@home.nl</email></term>
<listitem><para>Fixed the i18n stuff and source style
cleanups</para></listitem>
</varlistentry>
<varlistentry>
<term>Nadeem Hasan <email>nhasan@nadmm.com</email></term>
<listitem><para>Lots of bug fixes, improvements and
cleanups.</para></listitem>
</varlistentry>
<varlistentry>
<term>Carles Carbonell Bernado <email>mail@carlitus.net</email></term>
<listitem><para>Great new weather icons</para></listitem>
</varlistentry>
<varlistentry>
<term>John Ratke <email>jratke@comcast.net</email></term>
<listitem><para>Improvements and more code cleanups</para></listitem>
</varlistentry>
</variablelist>
&underGPL;
&underFDL;
</chapter>
&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
// vim:ts=2:sw=2:tw=78:noet
-->

@ -0,0 +1,4 @@
KDE_LANG = en
KDE_DOCS = AUTO
KDE_MANS = AUTO

@ -0,0 +1,503 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY kappname "&kworldclock;">
<!ENTITY package "kdetoys">
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE">
]>
<book lang="&language;">
<bookinfo>
<title>The &kworldclock; Handbook</title>
<authorgroup>
<author>
&Brad.Hards;
&Brad.Hards.mail;
</author>
</authorgroup>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
<copyright>
<year>2004</year>
<holder>Brad Hards</holder>
</copyright>
<legalnotice>&FDLNotice;</legalnotice>
<date>2004-01-22</date>
<releaseinfo>0.00.00</releaseinfo>
<abstract>
<para>
&kworldclock; is an application that shows which parts of the world
are currently experiencing daylight, and which parts are currently in
night. It also shows the current time in a range of cities around the
world.
</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>kdetoys</keyword>
<keyword>kworldwatch</keyword>
<keyword>World Clock</keyword>
<keyword>day / night clock</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title>Introduction</title>
<para>
&kworldclock; is an application that shows which parts of the world
are currently experiencing daylight, and which parts are currently in
night. It also shows the current time in a range of cities around the
world.
</para>
<para>
Please report any problems or feature requests to the &kde; mailing lists.
</para>
</chapter>
<chapter id="using-kapp">
<title>Using &kworldclock;</title>
<sect1><title>The main display</title>
<para>
When you start &kworldclock;, you will see a small window appear, as
shown below.
</para>
<para>
<screenshot>
<screeninfo>Here's a screenshot of &kworldclock;</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
The light section (which in the screenshot above covers Antartica,
Australia, eastern and southern Africa and most of Asia; plus the
Indian Ocean and the western part of the Pacific Ocean) shows the area
that is currently experiencing daylight, while the darker section
(which in the screenshot above covers western Europe, North and South
America, and the Arctic zone) shows the area that is currently
experiencing night. The border between the dark and light section
is the area that is experiencing morning or evening twilight.
</para>
<para>
Each small black square indicates a city or population centre. If you
locate the mouse over (or near) one of the black squares, you will see
the date and time that is current for that location. In the
screenshot above, the tiny island of Pitcairn is shown.
</para>
<para>
You may find it more convenient to expand the window, so that there is
more space between the various squares. Remember that you can expand the window by
either clicking on the maximise button (second button from the right in the
top right hand corner) or by using the mouse to drag the corner of the
main window. An expanded window, with Melbourne (Australia) now
selected, is shown below.
</para>
<para>
<screenshot>
<screeninfo>Screenshot of &kworldclock; with expanded window</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot-mlb.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot showing expanded window, with Melbourne
selected.</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
</sect1>
<sect1 id="kworldclock-clocks"><title>Configuring &kworldclock; with timezone clocks</title>
<para>
If you need to know the time in a number of areas around the world, it
may be useful to have &kworldclock; show the applicable times. An
example of how this can look is shown below.
</para>
<para>
<screenshot>
<screeninfo>Screenshot of &kworldclock; with clocks</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot-withclocks.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot showing expanded window, with three clocks.</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
Note the clocks for Perth, Sydney and Berlin at the bottom of the main
&kworldclock; window.
</para>
<para>
These clocks are added by using the right mouse button, and selecting
the <guilabel>Clock</guilabel> entry, as shown below.
</para>
<para>
<screenshot>
<screeninfo>Screenshot of &kworldclock; &RMB; clock</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot-rmb-clock.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot showing &RMB; menu, with
<guilabel>Clock</guilabel> selected.</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
This will allow access to the <guilabel>Add...</guilabel> selection,
which will bring up a dialog box as shown below. The contents of the
dialog box are determined from the closest city to the mouse cursor
when you make the selection.
</para>
<para>
<screenshot>
<screeninfo>Screenshot of &kworldclock; <guilabel>Edit Clock
Settings</guilabel> dialog</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot-clock-dialog.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot showing<guilabel>Edit Clock
Settings</guilabel> dialog.</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
You can now make an appropriate selection for the clock label and the
timezone. Note that you can change the label to whatever is
appropriate, and the timezone as required. An example, for the small
Australian town of Quairading, is shown below.
</para>
<para>
<screenshot>
<screeninfo>Screenshot of &kworldclock; <guilabel>Edit Clock
Settings</guilabel> dialog changed to Quairading</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot-quairading-dialog.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot showing <guilabel>Edit Clock
Settings</guilabel> dialog for Quairading.</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
When you select OK, the clock entry is added to those at the bottom of
the main window. A screenshot, with the extra entry for Quairading, is
shown below.
</para>
<para>
<screenshot>
<screeninfo>Screenshot of &kworldclock; with Quairading clock</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot-quairading-clock.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot showing Quairading clock.</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
You might notice that Perth and Quairading are now showing the same
information (since they are in the same timezone). In this case, the
Perth entry is no longer required, so it can be removed. This can be
done by again using the right mouse button on the clock display, and selecting
the <guilabel>Remove</guilabel> item.
</para>
<para>
You can also edit entries by using the <guilabel>Edit...</guilabel>
entry on right mouse button menu, which may be useful for making
minor changes.
</para>
</sect1>
<sect1 id="kworldclock-flags"><title>Adding Flags to the &kworldclock; display</title>
<para>
As shown in the screenshot below, you can add flags to places on the
map (in this case, Fremantle near Perth, Western Australia; near
Moscow in Russia; and the Azores in the mid-Atlantic). These flags
don't affect any other functionality - they just allows you to quickly
locate places of interest.
</para>
<para>
<screenshot>
<screeninfo>Screenshot of &kworldclock; with flags</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot-withflags.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot showing expanded window, with three flags.</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
You add flags by locating the mouse at the point where you want to
appear, and using the right mouse button to select the the
<guilabel>Flags...</guilabel> entry. You can select one of the three
pre-defined flag colours (that is, <guilabel>Add Red</guilabel>,
<guilabel>Add Green</guilabel> or <guilabel>Add Blue</guilabel>), or
you can select a custom colour.
</para>
<para>
You use the same menu action to remove just one flag (whichever one is
closest to the mouse when you make the <guilabel>Remove
Flag</guilabel> selection; or to remove all the flags, using the
<guilabel>Remove All Flags</guilabel>.
</para>
</sect1>
<sect1 id="kworldclock-display"><title>Changing the &kworldclock; display</title>
<para>
In addition to the additional clocks and flags, there are other minor
variations you can make to the main &kworldclock; display, such as not
showing the flags, not showing the small black city squares, and not
showing the day/night areas. Each of these is selected using the right
mouse button menu.
</para>
<para>
To enable and disable the display of the day / night sections, you use
the right mouse button, and select the <guilabel>Show
Daylight</guilabel> item from the menu. Each time you select it, the
selection will be toggled. When showing day and night is enabled
(normal mode on first startup), there will be a small check mark
(tick symbol) next to the <guilabel>Show Daylight</guilabel>. An
example of the menu item (with day / night not enabled, hence no check
mark) is shown below.
</para>
<para>
<screenshot>
<screeninfo>Screenshot of &kworldclock; &RMB; daylight</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot-rmb-daylight.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot showing &RMB; menu, with
<guilabel>Show Daylight</guilabel> selected.</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
To enable and disable the display of the small black city squares, you use
the right mouse button, and select the <guilabel>Show
Cities</guilabel> item from the menu. Each time you select it, the
selection will be toggled. When showing cities is enabled
(normal mode on first startup), there will be a small check mark
(tick symbol) next to the <guilabel>Show Cities</guilabel>. An
example of the menu item (with city display enabled, hence a check
mark) is shown below.
</para>
<para>
<screenshot>
<screeninfo>Screenshot of &kworldclock; &RMB; show cities</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot-rmb-cities.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot showing &RMB; menu, with
<guilabel>Show Cities</guilabel> selected.</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
To enable and disable the display of the flags, you use
the right mouse button, and select the <guilabel>Show
Flags</guilabel> item from the menu. Each time you select it, the
selection will be toggled. When showing flags is enabled
(normal mode on first startup), there will be a small check mark
(tick symbol) next to the <guilabel>Show Flags</guilabel>. An
example of the menu item (with flags enabled, hence a check
mark) is shown below.
</para>
<para>
<screenshot>
<screeninfo>Screenshot of &kworldclock; &RMB; show flags</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot-rmb-flags.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot showing &RMB; menu, with
<guilabel>Show Flags</guilabel> selected.</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
After reconfiguring &kworldclock;, you may wish to save your
settings. This is done using the right mouse button, and selecting the
<guilabel>Save Settings</guilabel> option.
</para>
</sect1>
<sect1 id="kworldclock-maps"><title>Selecting alternative maps</title>
<para>
In addition to the normal surface depth map, you can add additional
maps, which can be selected using the <guilabel>Map Theme</guilabel>
item from the right mouse button menu. &kworldclock; comes with a
single map, which provides surface depth (relief). Additional maps can be obtained from
<ulink url="http://www.radcyberzine.com/xglobe">http://www.radcyberzine.com/xglobe</ulink>.
Maps need to be appropriately installed - typically into
<filename>share/apps/kworldclock/maps</filename> under the main &kde;
directory. Consult your system administrator for assistance in doing
this, if required.
</para>
<para>
If you want to use your own map, you should make sure
that Greenwich is exactly in the middle of the map, and provide an
appropriate desktop file.
</para>
</sect1>
</chapter>
<chapter id="developers">
<title>Developer's Guide to &kworldclock;</title>
<para>
The most common requirement for development of &kworldclock; is to add
additional cities to the map. The cities are determined by a file
named <filename>zone.tab</filename>, which is located under
<filename>share/apps/kworldclock</filename> under the main &kde;
directory.
</para>
<para>
To add an additional city, you need to know the latitude and
longitude, and also the applicable time zone information. There is
additional information on the exact format required in the
<filename>zone.tab</filename> file.
</para>
</chapter>
<chapter id="credits">
<title>Credits and License</title>
<para>
&kworldclock;
</para>
<para>
Program copyright 2000 Matthias Hoelzer-Kluepfel.
</para>
<para>
Documentation Copyright &copy; 2004 &Brad.Hards; &Brad.Hards.mail;.
</para>
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
&underFDL; <!-- FDL: do not remove -->
&underGPL; <!-- GPL License -->
</chapter>
<appendix id="installation">
<title>Installation</title>
<sect1 id="getting-kapp">
<title>How to obtain &kworldclock;</title>
&install.intro.documentation;
</sect1>
<sect1 id="compilation">
<title>Compilation and Installation</title>
&install.compile.documentation;
</sect1>
</appendix>
&documentation.index;
</book>
<!--
Local Variables:
mode: xml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
-->

@ -0,0 +1,92 @@
<?xml version="1.0" ?>
<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY % English "INCLUDE">
]>
<refentry lang="&language;">
<refentryinfo>
<author><personname><firstname>Ben</firstname><surname>Burton</surname></personname> <email>bab@debian.org</email></author>
<date>April 8, 2003</date>
</refentryinfo>
<refmeta>
<refentrytitle><command>kworldclock</command></refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname><command>kworldclock</command></refname>
<refpurpose>Earth watcher for &kde;</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>kworldclock</command>
<group><option>--dump</option></group>
<group><option>--theme</option>
<replaceable>file</replaceable></group>
<group><option>-o</option> <replaceable>file</replaceable></group>
<group><option>--size</option>
<arg>WxH</arg></group>
<group><option>KDE Generic Options</option></group>
<group><option>Qt Generic Options</option></group>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>&kworldclock; displays where in the world it is light and dark
depending on time, as well as offering the time in all of the major
cities of the world. This can be run standalone, as an applet in the
&kde; panel, or configured to draw the desktop background.</para>
<para>&kworldclock; is part of the official &kde; kdetoys
package.</para>
</refsect1>
<refsect1>
<title>Options</title>
<variablelist>
<varlistentry>
<term><option>--dump</option></term>
<listitem><para>Write out a file containing the actual
map</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--theme</option> <replaceable>file</replaceable></term>
<listitem><para>The name of the theme to use for a map dump (default:
earth).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-o</option> <replaceable>file</replaceable></term>
<listitem><para>The name of the file to write to for a map dump
(default: dump.ppm).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--size</option> <replaceable>WxH</replaceable></term>
<listitem><para>The size of the map to dump.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>More detailed user documentation is available from <ulink
url="help:/kworldclock">help:/kworldclock</ulink> (either enter this
<acronym>URL</acronym> into &konqueror;, or run
<userinput><command>khelpcenter</command>
<parameter>help:/kworldclock</parameter></userinput>).</para>
</refsect1>
<refsect1><title>Authors</title><para>&kworldclock; was written by
&Matthias.Hoelzer-Kluepfel;
&Matthias.Hoelzer-Kluepfel.mail;</para><para>This manual page was
prepared by <personname><firstname>Ben</firstname><surname>Burton</surname></personname> <email>bab@debian.org</email></para></refsect1>
</refentry>

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@ -0,0 +1,20 @@
INCLUDES = $(all_includes)
kde_module_LTLIBRARIES = eyes_panelapplet.la
eyes_panelapplet_la_SOURCES = eyes.cpp
METASOURCES = AUTO
noinst_HEADERS = eyes.h
lnkdir = $(kde_datadir)/kicker/applets
lnk_DATA = eyesapplet.desktop
EXTRA_DIST = $(lnk_DATA)
eyes_panelapplet_la_LDFLAGS = $(KDE_PLUGIN) -module $(all_libraries)
eyes_panelapplet_la_LIBADD = $(LIB_KDEUI)
messages:
$(XGETTEXT) *.cpp *.h -o $(podir)/keyesapplet.pot

@ -0,0 +1,3 @@
if test "x$kde_use_qt_mac" = "xyes"; then
DO_NOT_COMPILE="$DO_NOT_COMPILE eyesapplet"
fi

@ -0,0 +1,202 @@
/*
* Copyright (c) 2000 Matthias Elter <elter@kde.org>
* based on keyes (C) 1999 by Jerome Tollet <tollet@magic.fr>
*
* 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
*/
#include <math.h>
#include <qpainter.h>
#include <qcursor.h>
#include <qimage.h>
#include <klocale.h>
#include <kglobal.h>
#include <kapplication.h>
#include "eyes.h"
#include "eyes.moc"
#define AAFACTOR 4
extern "C"
{
KDE_EXPORT KPanelApplet* init(QWidget *parent, const QString& configFile)
{
KGlobal::locale()->insertCatalogue("keyesapplet");
EyesApplet *applet = new EyesApplet(configFile, KPanelApplet::Normal, 0, parent, "keyesapplet");
return applet;
}
}
EyesApplet::EyesApplet(const QString& configFile, Type t, int actions,
QWidget *parent, const char *name)
: KPanelApplet( configFile, t, actions, parent, name )
{
setWFlags(WNoAutoErase);
setBackgroundOrigin(AncestorOrigin);
startTimer(50);
oldleft = QPoint(-1, -1);
oldright = QPoint(-1, -1);
oldMouse = QPoint(-1, -1);
}
int EyesApplet::widthForHeight(int h) const
{
return static_cast<int>(1.4 * h); // rectangular shape.
}
int EyesApplet::heightForWidth(int w) const
{
return static_cast<int>(w / 1.4); // rectangular shape.
}
void EyesApplet::resizeEvent( QResizeEvent*e )
{
QWidget::resizeEvent(e);
}
void EyesApplet::timerEvent(QTimerEvent*)
{
QPoint mouse = mapFromGlobal(QCursor::pos());
if (mouse != oldMouse)
update();
}
void EyesApplet::paintEvent(QPaintEvent*)
{
int spWidth = width() * AAFACTOR;
int spHeight = height() * AAFACTOR;
if (spWidth != _cache.width() || spHeight != _cache.height())
_cache.resize(spWidth, spHeight);
QPainter paint(&_cache);
if (paletteBackgroundPixmap())
{
QPixmap bg(width(), height());
QPainter p(&bg);
QPoint offset = backgroundOffset();
p.drawTiledPixmap(0, 0, width(), height(), *paletteBackgroundPixmap(), offset.x(), offset.y());
p.end();
QImage bgImage = bg.convertToImage().scale(spWidth, spHeight);
paint.drawImage(0, 0, bgImage);
}
else
{
_cache.fill(paletteBackgroundColor());
}
// draw eyes, no pupils
paint.setPen(QPen(black, 2 * AAFACTOR));
paint.setBrush(QBrush(white));
int w = spWidth; // - AAFACTOR * 2;
int h = spHeight; // - AAFACTOR * 2;
// left eye
paint.drawEllipse(AAFACTOR, AAFACTOR, w/2 - AAFACTOR, h - AAFACTOR * 2);
// right eye
paint.drawEllipse(w/2, AAFACTOR, w/2 - AAFACTOR, h - AAFACTOR * 2);
// draw pupils
drawPupils(&paint);
paint.end();
QPainter paintFinal(this);
QImage spImage = _cache.convertToImage();
QImage displayImage = spImage.smoothScale(size());
paintFinal.drawImage(0, 0, displayImage);
paintFinal.end();
}
void EyesApplet::drawPupils(QPainter* p)
{
QPoint pos, mouse, vect;
double cos_alpha,sin_alpha;
int w = width() * AAFACTOR;
int h = height() * AAFACTOR;
oldMouse = mapFromGlobal(QCursor::pos());
mouse = oldMouse * AAFACTOR;
int tmp = QMIN(h, w)/6;
// left pupil
vect.setX(mouse.x() - h / 4);
vect.setY(mouse.y() - h / 2);
cos_alpha = vect.x() / sqrt(double(vect.x() * vect.x() + vect.y() * vect.y()));
sin_alpha = vect.y() / sqrt(double(vect.x() * vect.x() + vect.y() * vect.y()));
if(vect.x() * vect.x() + vect.y() * vect.y() > (w/4 - tmp) * (w/4 - tmp)*
cos_alpha * cos_alpha+ (h/2-tmp) * (h/2-tmp) * sin_alpha * sin_alpha) {
pos.setX(int((w/4-tmp) * cos_alpha+w/4));
pos.setY(int((h/2-tmp) * sin_alpha+h/2));
}
else
pos = mouse;
if(pos != oldleft) {
int sizeEye=QMIN(h,w)/6;
// // draw over old pos
// p->setPen(QPen(NoPen));
// p->setBrush(QBrush(white));
// p->drawEllipse(oldleft.x() - sizeEye/2, oldleft.y() - sizeEye/2, sizeEye, sizeEye);
// draw left pupil
p->setPen(QPen(NoPen));
p->setBrush(QBrush(black));
p->drawEllipse(pos.x() - sizeEye/2, pos.y() - sizeEye/2, sizeEye, sizeEye);
//oldleft = pos;
}
// right pupil
vect.setX(mouse.x() - 3*w/4);
vect.setY(mouse.y() - h/2);
cos_alpha = vect.x()/sqrt(double(vect.x()*vect.x()+vect.y()*vect.y()));
sin_alpha = vect.y()/sqrt(double(vect.x()*vect.x()+vect.y()*vect.y()));
if(vect.x()*vect.x() + vect.y()*vect.y() > (w/4-tmp)*(w/4-tmp)
*cos_alpha*cos_alpha+(h/2-tmp)*(h/2-tmp)*sin_alpha*sin_alpha)
{
pos.setX(int((w/4-tmp)*cos_alpha+3*w/4));
pos.setY(int((h/2-tmp)*sin_alpha+h/2));
}
else
pos = mouse;
if(pos != oldright) {
int sizeEye=QMIN(h,w)/6;
// // draw over old pos
// p->setPen(QPen(NoPen));
// p->setBrush(QBrush(white));
// p->drawEllipse(oldright.x() - sizeEye/2, oldright.y() - sizeEye/2, sizeEye, sizeEye);
// draw left pupil
p->setPen(QPen(NoPen));
p->setBrush(QBrush(black));
p->drawEllipse(pos.x() - sizeEye/2, pos.y() - sizeEye/2, sizeEye, sizeEye);
//oldright = pos;
}
}

@ -0,0 +1,48 @@
/*
* Copyright (c) 2000 Matthias Elter <elter@kde.org>
* based on keyes (C) 1999 by Jerome Tollet <tollet@magic.fr>
*
* 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
*/
#ifndef __eyes_h__
#define __eyes_h__
#include <qpixmap.h>
#include <kpanelapplet.h>
class EyesApplet : public KPanelApplet
{
Q_OBJECT
public:
EyesApplet(const QString& configFile, Type t = Normal, int actions = 0,
QWidget *parent = 0, const char *name = 0);
int widthForHeight(int height) const;
int heightForWidth(int width) const;
protected:
void timerEvent(QTimerEvent*);
void resizeEvent(QResizeEvent*);
void paintEvent(QPaintEvent*);
private:
void drawPupils(QPainter* p);
QPoint oldleft, oldright, oldMouse;
QPixmap _cache;
};
#endif // __eyes_h__

@ -0,0 +1,120 @@
[Desktop Entry]
Type=Plugin
Name=Eyes
Name[af]=Oë
Name[ar]=عيون
Name[az]=Gözlər
Name[be]=Вочы
Name[bg]=Очички
Name[bn]=চোখ
Name[br]=Daoulagad
Name[bs]=Oči
Name[ca]=Ulls
Name[cs]=Oči
Name[cy]=Llygaid
Name[da]=Øjne
Name[de]=Augen
Name[el]=Μάτια
Name[eo]=Okuloj
Name[es]=Ojos
Name[et]=Silmad
Name[eu]=Begiak
Name[fa]=چشمها
Name[fi]=Silmät
Name[fo]=Eygu
Name[fr]=Yeux
Name[gl]=Ollos
Name[he]=עיניים
Name[hi]=आँखें
Name[hr]=Oči
Name[hu]=Szemek
Name[is]=Augu
Name[it]=Occhi
Name[km]=ភ្នែក
Name[ko]=눈
Name[lt]=Akys
Name[lv]=Acis
Name[mk]=Очи
Name[mt]=Għajnejn
Name[nb]=Øyne
Name[nds]=Ogen
Name[ne]=आँखा
Name[nl]=Ogen
Name[nn]=Auge
Name[pa]=ਅੱਖਾਂ
Name[pl]=Oczy
Name[pt]=Olhos
Name[pt_BR]=Olhos
Name[ro]=Ochi
Name[ru]=Глаза
Name[sk]=Oči
Name[sl]=Oči
Name[sr]=Очи
Name[sr@Latn]=Oči
Name[sv]=Ögon
Name[ta]= கண்கள்
Name[tg]=Чашмҳо
Name[th]=ดวงตา
Name[tr]=Gözler
Name[uk]=Очі
Name[uz]=Koʻzlar
Name[uz@cyrillic]=Кўзлар
Name[ven]=Mato
Name[wa]=Ouys
Name[xh]=Amehlo
Name[zh_CN]=眼睛
Name[zh_TW]=眼睛
Name[zu]=Amehlo
Comment=Keeps an eye on your mouse pointer
Comment[ar]=عين تلاحق دوماً مؤشر الفأرة
Comment[be]=Сочаць за мышшу
Comment[bg]=Очички, които следят показалеца на мишката
Comment[bn]=মাউস পয়েন্টারের ওপর চোখ রাখে
Comment[ca]=Vigila el cursor del ratolí
Comment[cs]=Oči sledující ukazatel myši
Comment[cy]=Yn cadw llygad ar bwyntydd eich llygoden
Comment[da]=Holder øje med din musemarkør
Comment[de]=Beobachtet Ihren Mauszeiger
Comment[el]=Ακολουθεί το δρομέα του ποντικιού σας
Comment[eo]=Konservu okulon sur via musmontrilo
Comment[es]=Echa una ojeada al puntero del ratón
Comment[et]=Utiliit, mis hoiab su hiirekursoril silma peal
Comment[eu]=Begi bat zure saguaren erakuslean mantentzen du
Comment[fa]=به اشاره‌گر موشی چشم می‌دوزد
Comment[fi]=Silmäilee hiiriosoitintasi
Comment[fr]=Garde un œil sur le pointeur de votre souris
Comment[ga]=Coinnigh súil ar do phointeoir luiche
Comment[gl]=Non perde de vista o ponteiro do rato
Comment[he]=עוקב אחרי הסמן של העכבר שלך
Comment[hr]=Drži oko na pokazivaču miša
Comment[hu]=Az egérmozgás figyelése
Comment[is]=Fylgist með músarbendlinum
Comment[it]=Fissa un occhio sul puntatore del mouse
Comment[ja]=マウスポインタを追いかける目
Comment[km]=ចាំ​យាម​មើលព្រួញ​កណ្ដុរ​របស់​អ្នក
Comment[lv]=Pieskata jūsu peli
Comment[mk]=Го следи движењето на вашиот покажувач
Comment[nb]=Holder et øye med musepekeren din
Comment[nds]=Beluert Dien Muuswieser
Comment[ne]=तपाईँको माउस पोइन्टरमा आँखा राख्दछ
Comment[nl]=Houdt een oogje op uw muisaanwijzer
Comment[nn]=Held auge med musepeikaren
Comment[pl]=Trzyma oko na Twój kursor myszy
Comment[pt]=Vigia o ponteiro do rato
Comment[pt_BR]=Vigia o ponteiro do seu mouse
Comment[ro]=Urmăreşte cursorul mouse-ului
Comment[ru]=Не сводит глаз с мыши
Comment[sk]=Drží pohľad na kurzor myši
Comment[sl]=Z očmi spremlja kazalec vaše miške
Comment[sr]=Прати погледом ваш показивач миша
Comment[sr@Latn]=Prati pogledom vaš pokazivač miša
Comment[sv]=Håller ett öga på muspekaren
Comment[tg]=Нишонаи мушро нигоҳ дошта истодааст
Comment[tr]=Gözlerin fare imlecinizi takip etmesini sağlar
Comment[uk]=Спостерігає за стрілкою мишки
Comment[zh_CN]=盯着您鼠标指针的眼睛
Comment[zh_TW]=讓眼睛盯著滑鼠游標跑
Icon=xeyes
X-KDE-Library=eyes_panelapplet

@ -0,0 +1,19 @@
INCLUDES = $(all_includes)
kde_module_LTLIBRARIES = fifteen_panelapplet.la
fifteen_panelapplet_la_SOURCES = fifteenapplet.cpp qttableview.cpp
METASOURCES = AUTO
noinst_HEADERS = fifteenapplet.h
lnkdir = $(kde_datadir)/kicker/applets
lnk_DATA = kfifteenapplet.desktop
EXTRA_DIST = $(lnk_DATA)
fifteen_panelapplet_la_LDFLAGS = $(KDE_PLUGIN) -module $(all_libraries)
fifteen_panelapplet_la_LIBADD = $(LIB_KDEUI)
messages:
$(XGETTEXT) *.cpp *.h -o $(podir)/kfifteenapplet.pot

@ -0,0 +1,321 @@
/*****************************************************************
Copyright (c) 2001 Matthias Elter <elter@kde.org>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
******************************************************************/
#include <stdlib.h>
#include <time.h>
#include <qlayout.h>
#include <qpainter.h>
#include <qpopupmenu.h>
#include <klocale.h>
#include <kglobal.h>
#include <kmessagebox.h>
#include <kaboutapplication.h>
#include "fifteenapplet.h"
#include "fifteenapplet.moc"
extern "C"
{
KDE_EXPORT KPanelApplet* init(QWidget *parent, const QString& configFile)
{
KGlobal::locale()->insertCatalogue("kfifteenapplet");
return new FifteenApplet(configFile, KPanelApplet::Normal,
KPanelApplet::About, parent, "kfifteenapplet");
}
}
FifteenApplet::FifteenApplet(const QString& configFile, Type type, int actions,
QWidget *parent, const char *name)
: KPanelApplet(configFile, type, actions, parent, name), _aboutData(0)
{
// setup table
_table = new PiecesTable(this);
setCustomMenu(_table->popup());
// setup layout
QHBoxLayout *_layout = new QHBoxLayout(this);
_layout->add(_table);
srand(time(0));
}
int FifteenApplet::widthForHeight(int h) const
{
return h; // we want to be quadratic
}
int FifteenApplet::heightForWidth(int w) const
{
return w; // we want to be quadratic
}
void FifteenApplet::about()
{
if(!_aboutData) {
_aboutData = new KAboutData("kfifteenapplet", I18N_NOOP("KFifteenApplet"), "1.0",
I18N_NOOP("Fifteen pieces applet.\n\n"
"The goal is to put the sliding pieces into numerical order.\n"
"Select \"Randomize Pieces\" from the right mouse button menu\n"
"to start a game."),
KAboutData::License_BSD, "(c) 2001, Matthias Elter");
_aboutData->addAuthor("Matthias Elter", 0, "elter@kde.org");
}
KAboutApplication dialog(_aboutData);
dialog.exec();
}
PiecesTable::PiecesTable(QWidget* parent, const char* name )
: QtTableView(parent, name), _activeRow(-1), _activeCol(-1), _randomized(false)
{
_menu = new QPopupMenu(this);
_menu->insertItem(i18n("R&andomize Pieces"), this, SLOT(randomizeMap()));
_menu->insertItem(i18n("&Reset Pieces"), this, SLOT(resetMap()));
_menu->adjustSize(); // setup table view
setFrameStyle(StyledPanel | Sunken);
setBackgroundMode(NoBackground);
setMouseTracking(true);
setNumRows(4);
setNumCols(4);
// init arrays
initMap();
initColors();
}
void PiecesTable::paintCell(QPainter *p, int row, int col)
{
int w = cellWidth();
int h = cellHeight();
int x2 = w - 1;
int y2 = h - 1;
int number = _map[col + row * numCols()] + 1;
bool active = (row == _activeRow && col == _activeCol);
// draw cell background
if(number == 16)
p->setBrush(colorGroup().background());
else
p->setBrush(_colors[number-1]);
p->setPen(NoPen);
p->drawRect(0, 0, w, h);
// draw borders
if (height() > 40) {
p->setPen(colorGroup().text());
if(col < numCols()-1)
p->drawLine(x2, 0, x2, y2); // right border line
if(row < numRows()-1)
p->drawLine(0, y2, x2, y2); // bottom boder line
}
// draw number
if (number == 16) return;
if(active)
p->setPen(white);
else
p->setPen(black);
p->drawText(0, 0, x2, y2, AlignHCenter | AlignVCenter, QString::number(number));
}
void PiecesTable::resizeEvent(QResizeEvent *e)
{
QtTableView::resizeEvent(e);
// set font
QFont f = font();
if (height() > 50)
f.setPixelSize(8);
else if (height() > 40)
f.setPixelSize(7);
else if (height() > 24)
f.setPixelSize(5);
else
f.setPixelSize(3);
setFont(f);
setCellWidth(contentsRect().width()/ numRows());
setCellHeight(contentsRect().height() / numCols());
}
void PiecesTable::initColors()
{
_colors.resize(numRows() * numCols());
for (int r = 0; r < numRows(); r++)
for (int c = 0; c < numCols(); c++)
_colors[c + r *numCols()] = QColor(255 - 70 * c,255 - 70 * r, 150);
}
void PiecesTable::initMap()
{
_map.resize(16);
for (unsigned int i = 0; i < 16; i++)
_map[i] = i;
_randomized = false;
}
void PiecesTable::randomizeMap()
{
QMemArray<int> positions;
positions.fill(0, 16);
for (unsigned int i = 0; i < 16; i++) {
while(1) {
int r = (int) (((double)rand() / RAND_MAX) * 16);
if(positions[r] == 0) {
_map[i] = r;
positions[r] = 1;
break;
}
}
}
repaint();
_randomized = true;
}
void PiecesTable::resetMap()
{
initMap();
repaint();
}
void PiecesTable::checkwin()
{
if(!_randomized) return;
int i;
for (i = 0; i < 16; i++)
if(i != _map[i])
break;
if (i == 16)
KMessageBox::information(this, i18n("Congratulations!\nYou win the game!"), i18n("Fifteen Pieces"));
}
void PiecesTable::mousePressEvent(QMouseEvent* e)
{
QtTableView::mousePressEvent(e);
if (e->button() == RightButton) {
// execute RMB popup and check result
_menu->exec(mapToGlobal(e->pos()));
e->accept();
return;
}
else {
// GAME LOGIC
// find the free position
int pos = _map.find(15);
if(pos < 0) return;
int frow = pos / numCols();
int fcol = pos - frow * numCols();
// find click position
int row = findRow(e->y());
int col = findCol(e->x());
// sanity check
if (row < 0 || row >= numRows()) return;
if (col < 0 || col >= numCols()) return;
// valid move?
if(row != frow && col != fcol) return;
// rows match -> shift pieces
if(row == frow) {
if (col < fcol) {
for(int c = fcol; c > col; c--) {
_map[c + row * numCols()] = _map[ c-1 + row *numCols()];
updateCell(row, c, false);
}
}
else if (col > fcol) {
for(int c = fcol; c < col; c++) {
_map[c + row * numCols()] = _map[ c+1 + row *numCols()];
updateCell(row, c, false);
}
}
}
// cols match -> shift pieces
else if (col == fcol) {
if (row < frow) {
for(int r = frow; r > row; r--) {
_map[col + r * numCols()] = _map[ col + (r-1) *numCols()];
updateCell(r, col, false);
}
}
else if (row > frow) {
for(int r = frow; r < row; r++) {
_map[col + r * numCols()] = _map[ col + (r+1) *numCols()];
updateCell(r, col, false);
}
}
}
// move free cell to click position
_map[col + row * numCols()] = 15;
updateCell(row, col, false);
// check if the player wins with this move
checkwin();
}
}
void PiecesTable::mouseMoveEvent(QMouseEvent* e)
{
QtTableView::mouseMoveEvent(e);
// highlight on mouse over
int row = findRow(e->y());
int col = findCol(e->x());
int oldrow = _activeRow;
int oldcol = _activeCol;
if(row >= numRows()
|| col >= numCols()
|| row < 0
|| col < 0) {
_activeRow = -1;
_activeCol = -1;
}
else {
_activeRow = row;
_activeCol = col;
}
updateCell(oldrow, oldcol, false);
updateCell(row, col, false);
}

@ -0,0 +1,84 @@
/*****************************************************************
Copyright (c) 2001 Matthias Elter <elter@kde.org>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
******************************************************************/
#ifndef __fifteenapplet_h__
#define __fifteenapplet_h__
#include "qttableview.h"
#include <qmemarray.h>
#include <kpanelapplet.h>
class QPopupMenu;
class KAboutData;
class PiecesTable : public QtTableView
{
Q_OBJECT
public:
PiecesTable(QWidget* parent = 0, const char* name = 0);
QPopupMenu* popup() { return _menu; }
protected:
void resizeEvent(QResizeEvent*);
void mousePressEvent(QMouseEvent*);
void mouseMoveEvent(QMouseEvent*);
void paintCell(QPainter *, int row, int col);
void initMap();
void initColors();
void checkwin();
protected slots:
void randomizeMap();
void resetMap();
private:
QMemArray<int> _map;
QMemArray<QColor> _colors;
QPopupMenu *_menu;
int _activeRow, _activeCol;
bool _randomized;
};
class FifteenApplet : public KPanelApplet
{
Q_OBJECT
public:
FifteenApplet(const QString& configFile, Type t = Stretch, int actions = 0,
QWidget *parent = 0, const char *name = 0);
int widthForHeight(int height) const;
int heightForWidth(int width) const;
void about();
private:
PiecesTable *_table;
KAboutData *_aboutData;
};
#endif

@ -0,0 +1,118 @@
[Desktop Entry]
Type=Plugin
Name=Fifteen Pieces
Name[af]=Vyftien Dele
Name[ar]=خمسة عشرة قطعة
Name[az]=On beş Parça
Name[be]=Пятнаццаць чарапкоў
Name[bg]=Пъзел от 15 части
Name[bn]=পনেরর ধাঁধা
Name[ca]=Quinze peces
Name[cs]=Patnáct
Name[cy]=Pymtheg Darn
Name[de]=Fünfzehn Steine
Name[el]=Δεκαπέντε κομμάτια
Name[eo]=Kvindek pecoj
Name[es]=Quince piezas
Name[et]=Viisteist tükki
Name[eu]=Hamabost Zati
Name[fa]=پانزده قطعه
Name[fi]=Viisitoista palasta
Name[fr]=Taquin
Name[ga]=Cúig Phíosa Déag
Name[gl]=Quince pezas
Name[he]=חמישה עשר חלקים
Name[hi]=पन्द्रह टुकड़े
Name[hr]=Petnaest dijelova
Name[hu]=Tizenötös játék
Name[is]=Fimmtán hlutir
Name[it]=Gioco del 15
Name[ja]=15 ピース
Name[km]=១៥ បំណែក
Name[ko]=열 다섯 조각
Name[lt]=Penkiolika dalių
Name[lv]=Piecpadsmit gabali
Name[mk]=Петнаесет парчиња
Name[nb]=Femten biter
Name[nds]=Foffteihn Steen
Name[ne]=पन्ध्र टुक्रा
Name[nl]=Vijftien stukken
Name[nn]=Femten brikker
Name[pa]=ਪੰਦਰਾਂ ਟੁਕੜੇ
Name[pl]=Piętnaście kawałków
Name[pt]=Quinze Peças
Name[pt_BR]=Quinze peças
Name[ro]=15 piese
Name[ru]=Пятнашки
Name[sk]=Hra Pätnásť
Name[sl]=Petnajst kosov
Name[sr]=Петнаест парчића
Name[sr@Latn]=Petnaest parčića
Name[sv]=Femtonspel
Name[ta]= பதினைந்து துண்டுகள்
Name[tg]=Понздаҳ Қисмҳо
Name[th]=เกมสิบห้าชิ้น
Name[tr]=Onbeş Parça
Name[uk]=П'ятнашки
Name[uz]=Oʻn beshta tosh
Name[uz@cyrillic]=Ўн бешта тош
Name[ven]=Zwipida zwa fumi na zwitanu
Name[wa]=Djeu des cwénze pîces
Name[xh]=Amaceba alishumi elinesihlanu
Name[zh_CN]=十五块
Name[zh_TW]=十五片
Name[zu]=Izingcezu Ezingamashumi nanhlanu
Comment=A little game with fifteen pieces
Comment[ar]= لعبة صغيرة مع خمسة عشرة قطعة
Comment[be]=Маленькая гульня з пятнаццацю чарапкамі
Comment[bg]=Малък пъзел от 15 части
Comment[bn]=পনেরটি টুকরোর একটি ছোট খেলা
Comment[ca]=Una joguina amb quinze peces
Comment[cs]=Malá hra s patnácti kameny
Comment[cy]=Gêm fach efo pymtheg darn
Comment[da]=Et lille spil med femten brikker
Comment[de]=Ein kleines Spiel mit fünfzehn Steinen
Comment[el]=Ένα μικρό παιχνίδι με 15 κομμάτια
Comment[eo]=Ludeto kun dek kvin pecoj
Comment[es]=Un pequeño juego con quince piezas
Comment[et]=Väike mäng viieteistkümne klotsiga
Comment[eu]=Hamabost piezadun joko txiki bat
Comment[fa]=بازیی کوچک با پانزده قطعه
Comment[fi]=Pieni 15 palan peli
Comment[fr]=Un petit jeu de taquin avec 15 pièces
Comment[ga]=Cluiche beag le cúig phíosa dhéag
Comment[gl]=Un xogo con quince pezas
Comment[he]=משחקון עם 15 חלקים
Comment[hr]=Mala igra s petnaest dijelova
Comment[hu]=A klasszikus kirakós játék
Comment[is]=Lítill leikur með fimmtán hluti
Comment[it]=Un piccolo gioco composto da quindici pezzi
Comment[ja]=15 ピースのちょっとしたゲーム
Comment[km]=កូន​ល្បែង​តូច​មួយ​ដែល​មាន​១៥ បំណែក
Comment[ko]=열 다섯 조각이 있는 작은 게임
Comment[lv]=Neliela spēlīte ar piecapdsmit gabaliem
Comment[mk]=Мала игра со петнаесет парчиња
Comment[nb]=Et lite spill med femten biter
Comment[nds]=Lütt Speel mit foffteihn Steen
Comment[ne]=पन्ध्र टुक्रा गरिएको सानो खेल
Comment[nl]=Een klein spel met vijftien stukken
Comment[nn]=Eit lite spel med femten brikker
Comment[pl]=Prosta gra w piętnaście kawałków
Comment[pt]=Um pequeno jogo com quinze peças
Comment[pt_BR]=Um pequeno jogo com quinze peças
Comment[ro]=Un mic joc cu 15 piese
Comment[ru]=Всем известная игра в пятнашки
Comment[sk]=Malá hra s pätnástimi kúskami
Comment[sl]=Igrica s petnajstimi delčki
Comment[sr]=Игрица са петнаест делића
Comment[sr@Latn]=Igrica sa petnaest delića
Comment[sv]=Ett litet spel med femton delar
Comment[tg]=Бозии хурд бо понздах қисмҳо
Comment[tr]=Onbeş parçadan oluşan küçük bir oyun
Comment[uk]=Маленька гра з 15-ти частин
Comment[wa]=On ptit djeu avou cwénze pîces
Comment[zh_CN]=有十五块的小游戏
Comment[zh_TW]=十五片的小遊戲
Icon=fifteenpieces
X-KDE-Library=fifteen_panelapplet
X-KDE-UniqueApplet=false

File diff suppressed because it is too large Load Diff

@ -0,0 +1,251 @@
/**********************************************************************
** $Id$
**
** Definition of QtTableView class
**
** Created : 941115
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file contains a class moved out of the Qt GUI Toolkit API. It
** may be used, distributed and modified without limitation.
**
**********************************************************************/
#ifndef QTTABLEVIEW_H
#define QTTABLEVIEW_H
#ifndef QT_H
#include "qframe.h"
#endif // QT_H
#ifndef QT_NO_QTTABLEVIEW
class QScrollBar;
class QCornerSquare;
class QtTableView : public QFrame
{
Q_OBJECT
public:
virtual void setBackgroundColor( const QColor & );
virtual void setPalette( const QPalette & );
void show();
void repaint( bool erase=TRUE );
void repaint( int x, int y, int w, int h, bool erase=TRUE );
void repaint( const QRect &, bool erase=TRUE );
protected:
QtTableView( QWidget *parent=0, const char *name=0, WFlags f=0 );
~QtTableView();
int numRows() const;
virtual void setNumRows( int );
int numCols() const;
virtual void setNumCols( int );
int topCell() const;
virtual void setTopCell( int row );
int leftCell() const;
virtual void setLeftCell( int col );
virtual void setTopLeftCell( int row, int col );
int xOffset() const;
virtual void setXOffset( int );
int yOffset() const;
virtual void setYOffset( int );
virtual void setOffset( int x, int y, bool updateScrBars = TRUE );
virtual int cellWidth( int col );
virtual int cellHeight( int row );
int cellWidth() const;
int cellHeight() const;
virtual void setCellWidth( int );
virtual void setCellHeight( int );
virtual int totalWidth();
virtual int totalHeight();
uint tableFlags() const;
bool testTableFlags( uint f ) const;
virtual void setTableFlags( uint f );
void clearTableFlags( uint f = ~0 );
bool autoUpdate() const;
virtual void setAutoUpdate( bool );
void updateCell( int row, int column, bool erase=TRUE );
QRect cellUpdateRect() const;
QRect viewRect() const;
int lastRowVisible() const;
int lastColVisible() const;
bool rowIsVisible( int row ) const;
bool colIsVisible( int col ) const;
QScrollBar *verticalScrollBar() const;
QScrollBar *horizontalScrollBar() const;
private slots:
void horSbValue( int );
void horSbSliding( int );
void horSbSlidingDone();
void verSbValue( int );
void verSbSliding( int );
void verSbSlidingDone();
protected:
virtual void paintCell( QPainter *, int row, int col ) = 0;
virtual void setupPainter( QPainter * );
void paintEvent( QPaintEvent * );
void resizeEvent( QResizeEvent * );
int findRow( int yPos ) const;
int findCol( int xPos ) const;
bool rowYPos( int row, int *yPos ) const;
bool colXPos( int col, int *xPos ) const;
int maxXOffset();
int maxYOffset();
int maxColOffset();
int maxRowOffset();
int minViewX() const;
int minViewY() const;
int maxViewX() const;
int maxViewY() const;
int viewWidth() const;
int viewHeight() const;
void scroll( int xPixels, int yPixels );
void updateScrollBars();
void updateTableSize();
private:
void coverCornerSquare( bool );
void snapToGrid( bool horizontal, bool vertical );
virtual void setHorScrollBar( bool on, bool update = TRUE );
virtual void setVerScrollBar( bool on, bool update = TRUE );
void updateView();
int findRawRow( int yPos, int *cellMaxY, int *cellMinY = 0,
bool goOutsideView = FALSE ) const;
int findRawCol( int xPos, int *cellMaxX, int *cellMinX = 0,
bool goOutsideView = FALSE ) const;
int maxColsVisible() const;
void updateScrollBars( uint );
void updateFrameSize();
void doAutoScrollBars();
void showOrHideScrollBars();
int nRows;
int nCols;
int xOffs, yOffs;
int xCellOffs, yCellOffs;
short xCellDelta, yCellDelta;
short cellH, cellW;
uint eraseInPaint : 1;
uint verSliding : 1;
uint verSnappingOff : 1;
uint horSliding : 1;
uint horSnappingOff : 1;
uint coveringCornerSquare : 1;
uint sbDirty : 8;
uint inSbUpdate : 1;
uint tFlags;
QRect cellUpdateR;
QScrollBar *vScrollBar;
QScrollBar *hScrollBar;
QCornerSquare *cornerSquare;
private: // Disabled copy constructor and operator=
#if defined(Q_DISABLE_COPY)
QtTableView( const QtTableView & );
QtTableView &operator=( const QtTableView & );
#endif
};
const uint Tbl_vScrollBar = 0x00000001;
const uint Tbl_hScrollBar = 0x00000002;
const uint Tbl_autoVScrollBar = 0x00000004;
const uint Tbl_autoHScrollBar = 0x00000008;
const uint Tbl_autoScrollBars = 0x0000000C;
const uint Tbl_clipCellPainting = 0x00000100;
const uint Tbl_cutCellsV = 0x00000200;
const uint Tbl_cutCellsH = 0x00000400;
const uint Tbl_cutCells = 0x00000600;
const uint Tbl_scrollLastHCell = 0x00000800;
const uint Tbl_scrollLastVCell = 0x00001000;
const uint Tbl_scrollLastCell = 0x00001800;
const uint Tbl_smoothHScrolling = 0x00002000;
const uint Tbl_smoothVScrolling = 0x00004000;
const uint Tbl_smoothScrolling = 0x00006000;
const uint Tbl_snapToHGrid = 0x00008000;
const uint Tbl_snapToVGrid = 0x00010000;
const uint Tbl_snapToGrid = 0x00018000;
inline int QtTableView::numRows() const
{ return nRows; }
inline int QtTableView::numCols() const
{ return nCols; }
inline int QtTableView::topCell() const
{ return yCellOffs; }
inline int QtTableView::leftCell() const
{ return xCellOffs; }
inline int QtTableView::xOffset() const
{ return xOffs; }
inline int QtTableView::yOffset() const
{ return yOffs; }
inline int QtTableView::cellHeight() const
{ return cellH; }
inline int QtTableView::cellWidth() const
{ return cellW; }
inline uint QtTableView::tableFlags() const
{ return tFlags; }
inline bool QtTableView::testTableFlags( uint f ) const
{ return (tFlags & f) != 0; }
inline QRect QtTableView::cellUpdateRect() const
{ return cellUpdateR; }
inline bool QtTableView::autoUpdate() const
{ return isUpdatesEnabled(); }
inline void QtTableView::repaint( bool erase )
{ repaint( 0, 0, width(), height(), erase ); }
inline void QtTableView::repaint( const QRect &r, bool erase )
{ repaint( r.x(), r.y(), r.width(), r.height(), erase ); }
inline void QtTableView::updateScrollBars()
{ updateScrollBars( 0 ); }
#endif // QT_NO_QTTABLEVIEW
#endif // QTTABLEVIEW_H

@ -0,0 +1,11 @@
Begin4
Title: kdetoys
Version: 3.5.10
Entered-date: 2008-08-26
Description: Toy applications for the K Desktop Environment (KDE)
Keywords: KDE X11 desktop Qt
Author: http://bugs.kde.org/ (KDE Bugtracking System)
Primary-site: http://www.kde.org/download/
Platforms: Unix, Qt
Copying-policy: GPL, Artistic
End

@ -0,0 +1,10 @@
KDE interface:
Stephan Kulow <coolo@kde.org>
M G berberich <berberic@fmi.uni-passau.de>
phase calculation code:
Christopher Osburn <chris@speakeasy.org>
Graphics by:
Tim Beauchamp <timb@googol.com>

@ -0,0 +1,20 @@
kde_module_LTLIBRARIES = kmoon_panelapplet.la
kmoon_panelapplet_la_SOURCES = kmoonapplet.cpp phases.cpp kmoondlg.cpp kmoonwidget.cpp
kmoon_panelapplet_la_LDFLAGS = $(KDE_PLUGIN) -module $(all_libraries)
kmoon_panelapplet_la_LIBADD = $(LIB_KSYCOCA)
lnkdir = $(kde_datadir)/kicker/applets
lnk_DATA = kmoonapplet.desktop
INCLUDES = $(all_includes)
METASOURCES = AUTO
KDE_ICON = kmoon
SUBDIRS = pics
messages:
$(XGETTEXT) *.cpp -o $(podir)/kmoon.pot

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save